我們回顧下第三篇時的內容:
在3.JAVA之GUI編程Frame窗口中窗體是無法直接關閉的,想要關閉須進程管理器結束進程方式關掉。
現在我們就來解決下這個問題。
***********************************************
功能實現如下幾點:
1.建立一個窗口;
2.窗口有標題;
3.窗口大小設置;
4.窗口位置設置;
5.窗口可見。
6.添加一個帶有文字標簽的按鈕;
7.窗體設置布局方式。
8.為窗口關閉事件監聽器,實現關閉窗口功能。
*****************************************************************************
我們要明確:
1.窗體是一個事件源;
2.在事件源上添加監聽器並加上處理事件方法即可。
代碼如下:
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; class studyframe { public static void main(String[] args) { Frame f = new Frame();//構造一個最初不可見的 Frame 新實例()。 f.setTitle("窗口——by星雲");//設置窗口標題內容 f.setSize(500, 400);//設置窗口大小,寬度500,高度400 f.setLocation(300, 200);//設置窗口位置為距離屏幕左邊水平方向300,上方垂直方向200 f.setVisible(true);//設置窗體可見。 f.setLayout(new FlowLayout());//設置窗體布局為流式布局。 f.addWindowListener(new MyWin());//在窗體事件源上添加監聽器。
Button b=new Button("我是一個按鈕");//在窗口中添加一個按鈕; f.add(b);//將按鈕添加到窗口內 } } /*如果用這種方法,就必須把這七個方法全部重寫。 class MyWin implements WindowListener { 覆蓋七個方法。可以我只用到了關閉的動作。 其他方法都沒有用到,如果用這種方法,就必須把這七個方法全部重寫。 } 因為WindowListener的子類WindowAdapter已經實現了WindowListener接口。 並覆蓋了其中的所有方法。那么我只要繼承自WindowAdapter覆蓋我需要的方法即可。 */
//創建窗口監聽器方法類繼承WindowAdapter中的方法。 //下面是個窗口關閉監聽器 class MyWin extends WindowAdapter{ public void windowClosing(WindowEvent e) { System.exit(0);//關閉窗口處理關閉動作監聽事件 } }
注意:現在點擊X就可以關閉窗口了。
運行代碼:
上面代碼也可以這樣寫:
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; class studyframe { public static void main(String[] args) { Frame f = new Frame();//構造一個最初不可見的 Frame 新實例()。 f.setTitle("窗口——by星雲");//設置窗口標題內容 f.setSize(500, 400);//設置窗口大小,寬度500,高度400 f.setLocation(300, 200);//設置窗口位置為距離屏幕左邊水平方向300,上方垂直方向200 f.setVisible(true);//設置窗體可見。 f.setLayout(new FlowLayout());//設置窗體布局為流式布局。 //在窗體事件源上添加帶有處理事件的監聽器。 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);//關閉窗口處理關閉動作監聽事件 } }); Button b=new Button("我是一個按鈕");//在窗口中添加一個按鈕; f.add(b);//將按鈕添加到窗口內 } }
************************************************************
參考文獻: