当前位置: 首页 > 知识库问答 >
问题:

在最大化屏幕上调整JFreeChart.ChartPanel的大小

太叔乐家
2023-03-14

我有一个JFrameframe,其中包含一个jpanel面板。我还向面板添加了JFreeChart ChartPanel cp。到目前为止,我所做的是在我的框架框架上使用ComponentListener来对调整窗口大小做出反应。

下面是我的代码片段:

private void initialize() throws ParseException {
    frame = new JFrame();
    frame.addComponentListener(new ComponentListener() {
        @Override
        public void componentResized(ComponentEvent e) {
            ChartPanel cp = (ChartPanel)panel.getComponents()[0];
            cp.setPreferredSize(new java.awt.Dimension(panel.getWidth(), panel.getHeight()));
            frame.repaint();
            cp.repaint();
        }

        @Override
        public void componentMoved(ComponentEvent e) {}

        @Override
        public void componentShown(ComponentEvent e) {}

        @Override
        public void componentHidden(ComponentEvent e) {}
    });

    ...
}

当更改框架的大小时,ChartPanel的大小可以完全调整。但是当我最大化我的框架,图表面板不会改变它的大小!它保持在最大化之前的时刻。因此,当我再次“取消最大化”我的框架时,图表面板被最大化,这导致了问题,图表将不再适合图表面板。所有这些调整尺寸的事情似乎都“落后一步”...

有没有人知道这种行为,并帮助如何纠正它?

共有1个答案

辛锦
2023-03-14

chartpanel.setPreferredSizejframe.validate之后调用chartpanel.setsize完成了任务!请参阅新代码:

frame = new JFrame();
frame.addComponentListener(new ComponentListener() {
    @Override
    public void componentResized(ComponentEvent e) {
        // frame.repaint();
        ChartPanel cp = (ChartPanel)panel.getComponents()[0];
        cp.setPreferredSize(new java.awt.Dimension(panel.getWidth(), panel.getHeight()));
        cp.setSize(new java.awt.Dimension(panel.getWidth(), panel.getHeight()));
        // frame.invalidate();
        frame.validate();
        // frame.repaint();
    }
    ...
});
...
 类似资料:
  • 我是一个新的android开发和我正在尝试创建和应用程序与网格菜单,菜单。 当前依赖项:compile fileTree(目录:“libs”,include:['*.jar'])testCompile“junit:junit:4.12”编译组:“org.apache.httpcomponents”,名称:“httpclient-android”,版本:“4.3.5.1”编译组:“cz.mseber

  • 问题内容: 我是Python编程的新手,我最近开始使用PyGame模块。这是初始化显示屏的简单代码。我的问题是:目前,最大化按钮已禁用,我无法调整屏幕大小。如何启用它在全屏和后退之间切换?谢谢 问题答案: 要以原始分辨率全屏显示,请执行 要使窗口可调整大小,请在设置模式时添加参数。您可以多次设置屏幕表面的模式,但是您可能必须要做的是 您还应该在http://www.pygame.org/docs/

  • 我想调整一个视图的大小,开始像200px宽100px高,然后“扩展”到填充半个屏幕时,它被点击。它背后的所有视图都应该保持在同一个位置。我只想扩展该视图,填满半个屏幕,重叠当前屏幕上的任何内容。 null

  • 我正在使用Eclipse开发一个新的应用程序,我在Android仿真器中的屏幕大小有问题。即使我创建了一个新的模拟器,屏幕大小也会放大,如图所示。我无法调整它的大小。即使搜索了它,我也找不到任何解决方案。

  • 问题内容: 是否可以在浏览器大小更改时刷新页面?我使用一些样式来创建页面上的区域,并且如果浏览器按比例缩小了版面布局。 也许我可以使用jQuery检测文档大小的变化? 问题答案: 立即更新以供任何人查看。jQuery现在考虑绑定已弃用的函数。 而且proximus的响应方式(至少在Opera / Chrome / Firefox中)有效,即使浏览器只是坐在那里,它也会不断轮询以调整大小。看起来,调

  • 想通过按钮来控制屏幕最大化或最小化,但是运行之后就会报__dirname is not defined,为什么呢