1. 監聽視窗大小變化
在JFrame裡設置addWindowStateListener() 方法,可監聽視窗大小變化之事件,並依需求撰寫所需之程式。
◎程式範例:
importjava.awt.event.WindowEvent;
importjava.awt.event.WindowStateListener;
<…略…>
this.addWindowStateListener(newWindowStateListener () {
public voidwindowStateChanged(WindowEvent state) {
if(state.getNewState() == 1 || state.getNewState() == 7) {
System.out.println("視窗最小化");
} else if(state.getNewState() == 0) {
System.out.println("視窗恢復到原本的視窗大小");
} else if(state.getNewState() == 6) {
System.out.println("視窗最大化");
}
}
});
2. BorderLayout版面重覆疊放之衍伸問題
◎問題描述:
BorderLayout版面重覆疊放於Center之樣版後,隱藏最初之樣版,但因需求移除後放之樣版並將最初樣版顯示後,無法同步縮放大小之問題。
◎解決:
原本以為該問題是無設置監聽視窗大小變化之事件所造成,結果經實驗,是因為BorderLayout版面會把重覆疊放於Center之樣版保留給最後一個使用樣版,如要將其回復可同步縮放大小的話,只需重新設置即可(如:panelBg.add(panelMain, BorderLayout.CENTER);)。