【问题标题】:Java JComponent lag on resizeJava JComponent 延迟调整大小
【发布时间】:2013-02-27 15:39:39
【问题描述】:

谁能解释为什么在调整框架大小时,绘制简单形状(如矩形)的 JPanel 会明显滞后?

我认为通过添加一个窗口调整大小的事件并将调整大小计时到 1/10 秒左右,我可以解决这个问题。但我不太确定。

编辑:

查看示例代码后,我发现调整大小滞后是由于有一个处理程序通过获取屏幕的高度和宽度来缩放绘制的对象。

   this.addComponentListener(new ComponentAdapter() {
            public void componentResized(ComponentEvent e) {

                setScale( getHeight(), getWidth() );
            }
        });

有什么办法可以平滑调整大小的延迟?

【问题讨论】:

  • 没有示例代码,不,您不会得到直接的答案。但是,重绘管理器可能正在将其调度的重绘次数减少到最小设置并等待窗口大小调整事件稳定下来......可能
  • 我认为这是swing编程时普遍面临的问题,我认为应该以经验为准。
  • 在 Swing 中编码已有 13 年,这一直是个问题。由于我们无法直接控制绘制过程,这将归结为重绘管理器如何决定何时重绘其表面,所以我相信
  • 不要因为你没有显示的代码有问题而责怪 Swing ;-)

标签: java swing resize lag jcomponent


【解决方案1】:

here 引用的示例可以很好地扩展到数千个节点和边。它可以作为一个有用的参考例子。 profiler,代表example,也可能提供一些见解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多