简单地说,期望的目标是在调整窗口大小时冻结活动的渲染循环(为了摆脱一些令人不快的闪烁,如here所述),但似乎没有一种直接的方法来确定何时抓取帧/JFrame的边界。
当然,当框架边框被抓取并调整大小时会抛出一个事件。这可能很有用,因为可以在每次调整大小事件之后添加一个小等待来冻结呈现循环,但这将在帧完成大小调整后产生一个很好的冻结帧。最好是抛出一个实际的事件。有人知道怎么做吗?
注意:为了清楚起见,我需要知道框架边框何时被抓取,而不是框架何时调整大小。
发布于 2014-08-12 13:59:52
期望的目标是在调整窗口大小时冻结活动的渲染循环
您可能正在寻找:
Toolkit.getDefaultToolkit().setDynamicLayout(false)
当您释放鼠标时,组件的布局将完成。
我需要知道框架边框何时被抓取,而不是框架何时调整大小
框架边框是由底层操作系统的框架组件实现的,而不是Swing,因此Swing无法访问在您单击框架边框时生成的任何事件。
您可以使用未修饰的JFrame并添加自己的边框和调整大小逻辑。然后,您可以确定自己何时开始/停止调整大小。
您可以查看Resizing Components中的一个类,该类将为您调整大小。
发布于 2014-08-12 13:50:38
public void componentResized(ComponentEvent e);
public void componentMoved(ComponentEvent e);
在JFrame
中添加一个ComponentListener
并处理事件。
https://stackoverflow.com/questions/25265920
复制