2013-03-12 67 views
-1

任何人都可以提供见解:为什么绘制简单形状(如矩形)的JPanel少量时会在调整帧大小时显着滞后?Java JComponent在调整大小上的滞后性

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

编辑:

审查示例代码我发现,调整大小的滞后是由于具有通过获取屏幕的高度和宽度尺度绘制的对象的处理程序之后。

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

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

是否有任何方法来平滑调整大小滞后?

+2

没有示例代码,不,你不会得到直接的答案。但是,重绘管理器可能会将重新调整的次数减少到最小设置,并等待窗口大小调整事件稳定下来......可能 – MadProgrammer 2013-03-12 07:58:18

+1

我相信这是摆动编程时遇到的一个普遍问题,我会认为经验应该占上风。 – BAR 2013-03-12 08:05:59

+1

在Swing编写了13年,这一直是一个问题。由于我们没有对绘制过程的直接控制,它会回到重绘管理器如何决定它何时应该重新绘制它的表面,所以我相信 – MadProgrammer 2013-03-12 08:47:35

回答

3

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

image