有没有办法让JFrame对象的事件侦听器检测用户何时单击窗口最大化或最小化按钮?如何检测JFrame窗口最小化和最大化事件?
现在用的是JFrame的对象,如下所示:
JFrame frame = new JFrame("Frame");
有没有办法让JFrame对象的事件侦听器检测用户何时单击窗口最大化或最小化按钮?如何检测JFrame窗口最小化和最大化事件?
现在用的是JFrame的对象,如下所示:
JFrame frame = new JFrame("Frame");
您可以使用WindowStateListener。 How to Write Window Listeners教程演示了如何创建与窗口相关的事件处理程序。
是的,您可以通过windowDeiconified(WindowEvent e)实现“WindowListener”方法,即windowIconified(WindowEvent e)来实现。有关详细信息,请访问this
JFrame frame = new JFrame();
frame.addWindowStateListener(new WindowStateListener() {
public void windowStateChanged(WindowEvent arg0) {
frame__windowStateChanged(arg0);
}
});
public void frame__windowStateChanged(WindowEvent e){
// minimized
if ((e.getNewState() & Frame.ICONIFIED) == Frame.ICONIFIED){
_print("minimized");
}
// maximized
else if ((e.getNewState() & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH){
_print("maximized");
}
}
你有一个具体的目标? – trashgod
是的,我需要知道窗口何时调整大小,以便我可以重新绘制框架内的组件。 –
在调整框架大小时,将自动调用validate()和repaint()方法,但您可能需要更新其他数据结构;另见['AnimationTest'](http://stackoverflow.com/a/3256941/230513)。 – trashgod