JAVA程式請拜託解答...急急急~~時間有限

在處理互動元件及相對應的事件時,我們通常透過下面的手法來完成

內層物件 (inner class) 來扮演事件傾聽者的角色

匿名式內層物件 (anonymous inner class) 來扮演事件傾聽者的角色

直接由應用程式來扮演事件傾聽者的角色

現在請撰寫三個程式,分別使用上述的三種手法來處理一個按鈕事件,當這個按鈕被按下時,會出現一個 Welcome to JAVA Programming! 的對話視窗。

1 個解答

評分
  • 1 0 年前
    最佳解答

    請參考我的做法

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    class BtnOne extends JFrame {

    JButton b;

    public BtnOne() {

    super("Inner Listener");

    setSize(200,100);

    b=new JButton("Click me!");

    b.setPreferredSize(new Dimension(150,20));

    b.addActionListener(new BtnLnr());

    JPanel p=new JPanel();

    p.add(b);

    getContentPane().add(p);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setVisible(true);

    }

    class BtnLnr implements ActionListener {

    public void actionPerformed(ActionEvent ae) {

    if (ae.getSource().equals(b)) {

    JOptionPane.showMessageDialog(null,"Welcome to JAVA Programming!");

    }

    }

    }

    public static void main(String[] args) {

    new BtnOne();

    }

    }

    class BtnTwo extends JFrame {

    JButton b;

    public BtnTwo() {

    super("Anonymous Inner Listener");

    setSize(250,100);

    b=new JButton("Click me!");

    b.setPreferredSize(new Dimension(150,20));

    b.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent ae) {

    if (ae.getSource().equals(b)) {

    JOptionPane.showMessageDialog(null,"Welcome to JAVA Programming!");

    }

    }

    });

    JPanel p=new JPanel();

    p.add(b);

    getContentPane().add(p);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setVisible(true);

    }

    public static void main(String[] args) {

    new BtnTwo();

    }

    }

    class BtnTre extends JFrame implements ActionListener {

    JButton b;

    public BtnTre() {

    super("Self Listener");

    setSize(200,100);

    b=new JButton("Click me!");

    b.setPreferredSize(new Dimension(150,20));

    b.addActionListener(this);

    JPanel p=new JPanel();

    p.add(b);

    getContentPane().add(p);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setVisible(true);

    }

    public void actionPerformed(ActionEvent ae) {

    if (ae.getSource().equals(b)) {

    JOptionPane.showMessageDialog(null,"Welcome to JAVA Programming!");

    }

    }

    public static void main(String[] args) {

    new BtnTre();

    }

    }

還有問題?馬上發問,尋求解答。