1. 事件型別
2. ActionListener
a:如果同一個元件新增了多個監聽器,則每個監聽器都會被執行, 後新增監聽器會先被執行!
b: 同一個監聽器物件,可以監聽多個元件!
try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated; org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch(Exception e) { //TODO exception } // 建立窗體物件 JFrame jFrame =new JFrame(); // 設定窗體大小 jFrame.setSize(800, 500); // 設定窗體全屏展示 //jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH); // 設定窗體顯示位置 //jFrame.setLocation(100,200); // 設定窗體顯示正中間 jFrame.setLocationRelativeTo(null); // 設定窗體標題 jFrame.setTitle("窗體標題"); // 設定窗體不可全屏顯示 //jFrame.setResizable(false); // 設定窗體關閉後退出程式 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設定此視窗是否應該始終位於其他視窗上方 jFrame.setAlwaysOnTop(true); // 設定窗體圖示 jFrame.setIconImage(new ImageIcon(HelloWorld.class.getResource("/images/book.png")).getImage()); // 建立容器 JPanel jPanel =new JPanel(); JButton btn01 =new JButton("Button01"); //給元件新增監聽器 btn01.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("actionlistener"); } }); jPanel.add(btn01,"b1"); jFrame.setContentPane(jPanel); // 設定窗體可見 jFrame.setVisible(true);
3. 監聽器多種實現方式
try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated; org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch(Exception e) { //TODO exception } // 建立窗體物件 JFrame jFrame =new JFrame(); // 設定窗體大小 jFrame.setSize(800, 500); // 設定窗體全屏展示 //jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH); // 設定窗體顯示位置 //jFrame.setLocation(100,200); // 設定窗體顯示正中間 jFrame.setLocationRelativeTo(null); // 設定窗體標題 jFrame.setTitle("窗體標題"); // 設定窗體不可全屏顯示 //jFrame.setResizable(false); // 設定窗體關閉後退出程式 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設定此視窗是否應該始終位於其他視窗上方 jFrame.setAlwaysOnTop(true); // 設定窗體圖示 jFrame.setIconImage(new ImageIcon(HelloWorld.class.getResource("/images/book.png")).getImage()); // 建立容器 JPanel jPanel =new JPanel(); JButton btn01 =new JButton("Button01"); JButton btn02 =new JButton("Button02"); // 建立內部類來實現監聽器物件共享 class ActionListenerImpl implements ActionListener{ int count; int num; ActionListenerImpl(int num){ this.num=num; } @Override public void actionPerformed(ActionEvent e) { ++count; System.out.println("button"+num+"被點選了"+count); } } btn01.addActionListener(new ActionListenerImpl(1)); btn02.addActionListener(new ActionListenerImpl(2)); jPanel.add(btn01,"b1"); jPanel.add(btn02,"b2"); jFrame.setContentPane(jPanel); // 設定窗體可見 jFrame.setVisible(true);
4.
5.
6.
7.