Java中的事件處理—通過點選不同的按鈕,讓面板的背景色發生變化
阿新 • • 發佈:2019-01-28
package com.event; import java.awt.*; import javax.swing.*; import java.awt.event.*; //Java事件處理 public class EventDemo extends JFrame implements ActionListener { // 定義一個panel Panel mp = null; JButton jb1 = null; JButton jb2 = null; public static void main(String[] args) { EventDemo ed = new EventDemo(); } public EventDemo() { mp = new Panel(); jb1 = new JButton("黑色"); jb2 = new JButton("紅色"); this.add(jb1, BorderLayout.NORTH); mp.setBackground(Color.black); this.add(mp); this.add(jb2, BorderLayout.SOUTH); Cat myCat=new Cat(); jb1.addActionListener(myCat); jb2.addActionListener(myCat); // 註冊監聽 jb1.addActionListener(this); //指定action命令 jb1.setActionCommand("aa"); jb2.addActionListener(this); jb2.setActionCommand("bb"); this.setSize(200, 150); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } // 對事件處理的方法 @Override public void actionPerformed(ActionEvent e) { //判斷是哪個按鈕被點選 if(e.getActionCommand().equals("aa")){ //System.out.println("黑色"); mp.setBackground(Color.BLACK); }else if(e.getActionCommand().equals("bb")){ //System.out.println("紅色"); mp.setBackground(Color.RED); } } } //一個普通的類也可以監聽 class Cat implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("aa")){ System.out.println("貓也知道你按下了黑色按鈕"); }else if(e.getActionCommand().equals("bb")){ System.out.println("貓也知道你按下了紅色按鈕"); } } }