java之事件監聽(一)按鈕監聽
阿新 • • 發佈:2019-02-03
package 第一版; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class draw3 extends JFrame implements ActionListener{ JButton jb1,jb2; JTextField jtf = null; Cat cat = null; public draw3() { jb1 = new JButton("按鈕A"); jb2 = new JButton("按鈕B"); cat = new Cat(); jtf = new JTextField(); this.add(jb1,BorderLayout.NORTH); this.add(jtf,BorderLayout.CENTER); this.add(jb2,BorderLayout.SOUTH); this.setBackground(Color.blue); //註冊監聽 jb1.addActionListener(this); jb1.addActionListener(cat); // 可以實現多個註冊監聽 //制定action命令,傳入事件響應 jb1.setActionCommand("按鈕A"); jb2.addActionListener(this); jb2.addActionListener(cat); jb2.setActionCommand("按鈕B"); this.setSize(300, 300); // 設定框體大小 this.setLocation(400,150); //設定框體顯示的位置 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設定框體退出 this.setVisible(true); // 顯示框體 } @Override public void actionPerformed(ActionEvent e) { // 接收事件 // // TODO Auto-generated method stub // if(e.getActionCommand().equals("按鈕A")) // 多型的思想 // System.out.println("yes"); // if(e.getActionCommand().equals("按鈕B")) // 多型的思想 // System.out.println("no"); } public static void main(String[] args) { draw3 d = new draw3(); } } class Cat implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // 接收事件 // TODO Auto-generated method stub if(e.getActionCommand().equals("按鈕A")) // 多型的思想 System.out.println("貓也按鈕A"); if(e.getActionCommand().equals("按鈕B")) // 多型的思想 System.out.println("貓也按鈕B"); } }