有沒有辦法讓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