對自己定義的類規范化一下,事件和圖形化組件分離出來
定義一個類FrameDemo
定義成員屬性Frame frame
定義成員屬性Botton
定義構造方法FrameDemo()
定義初始化方法init()
初始化方法中,new出來Frame(),參數:String的窗體名稱
調用Frame對象的setBounds()方法,參數:x,y,width,height
調用Frame對象的setLayout()方法,參數:FlowLayout對象
獲取Button對象,new出來,構造參數:String的按鈕文本
調用Frame對象的add()方法,參數:Button對象
調用Frame對象的setVisible()方法,參數:Boolean的true
定義事件方法myEvent()
調用Frame對象的addWindowListener()方法,參數:WindowListener對象,WindowListener是個接口,裡面有七個方法要實現,找實現子類WindowAdapter,匿名內部類重寫windowClosing()方法,傳遞進來參數:WindowEvent對象
調用Button對象的addActionListener()方法,參數:ActionListener對象,這個類是個接口,因此采用匿名內部類實現這個接口,實現方法actionPerformed()方法,傳遞進來參數:ActionEvent對象
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class FrameDemo { private Frame frame; private Button button; public FrameDemo() { init(); } /** * 初始化 */ public void init(){ frame=new Frame("測試窗體"); frame.setBounds(300, 200, 200, 200); frame.setLayout(new FlowLayout()); button=new Button("退出"); frame.add(button); frame.setVisible(true); addEventAction(); } /** * 添加事件 */ public void addEventAction(){ //按鈕退出 button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); } /** * @param args */ public static void main(String[] args) { new FrameDemo(); } }