无法确定何时抓取帧边框

时间:2014-08-12 13:44:41

标签: java swing awt border

简单来说,理想的目标是在窗口调整大小时冻结活动渲染循环(为了摆脱一些令人讨厌的闪烁,如here所述),但似乎没有一种直截了当的方式确定何时抓取Frame / JFrame的边框。

当然,抓取框架边框并调整其大小时会抛出一个事件。这可能很有用,因为可以在每次调整大小事件之后添加一个小等待来冻结渲染循环,但这会在帧完成大小调整后产生一个很好的冻结帧。抛出一个实际的事件是最好的。有谁知道怎么做?

注意:要清楚,我需要知道何时抓取框架边框,而不是在调整框架大小时

2 个答案:

答案 0 :(得分:1)

  

期望的目标是在窗口调整大小

上冻结活动渲染循环

您可能正在寻找:

Toolkit.getDefaultToolkit().setDynamicLayout(false) 

释放鼠标时将完成组件的布局。

  

我需要知道何时抓取框架边框,而不是在调整框架大小时

框架边框由底层操作系统的框架组件实现,而不是Swing,因此当您单击框架边框时,Swing无法访问生成的任何事件。

您可以使用未修饰的JFrame并添加自己的边框并调整逻辑大小。然后,您可以在调整大小开始/停止时确定自己。

您可以查看Resizing Components以查找将为您调整大小的课程。

答案 1 :(得分:0)

看看ComponentListener

public void componentResized(ComponentEvent e);
public void componentMoved(ComponentEvent e);

ComponentListener添加JFrame并处理事件。