一、Button 监听示例
package com.text01;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JPanel;
// 实现接口
public class Demo8_0 extends JFrame implements ActionListener{
JPanel mp = null;
JButton jb1 = null;
JButton jb2 = null;
public static void main(String[] args) {
// TODO 自动生成的方法存根
Demo8_0 demo8_0 = new Demo8_0();
}
public Demo8_0(){
mp = new JPanel();
jb1 = new JButton("Black");
jb2 = new JButton("Red");
this.add(jb1, BorderLayout.NORTH);
mp.setBackground(Color.red);
this.add(mp);
this.add(jb2, BorderLayout.SOUTH);
// Register Listener
jb1.addActionListener(this);
// action
jb1.setActionCommand("Black");
jb2.addActionListener(this);
jb2.setActionCommand("Red");
this.setSize(200, 150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);;
this.setVisible(true);
}
//对事件处理的方法
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自动生成的方法存根
System.out.println("Button clicked");
// judge which button is clicked.
if(arg0.getActionCommand().equals("Black")){
System.out.println("Black button is clicked");
mp.setBackground(Color.BLACK);
}
else if(arg0.getActionCommand().equals("Red")){
System.out.println("Red button is clicked");
mp.setBackground(Color.RED);
}
else{
System.out.println("Not know");
}
}
}
运行效果:(按下“Black”,面板颜色变成黑色,按下“Red”,变成红色)

二、键盘key监听示例
package com.text01;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Demo8_10 extends JFrame {
MyPanel mp = null;
public static void main(String[] args) {
// TODO 自动生成的方法存根
Demo8_10 demo8_10 = new Demo8_10();
}
public Demo8_10(){
mp = new MyPanel();
this.add(mp);
this.addKeyListener(mp);
this.addKeyListener(mp);
this.setSize(400, 300);
this.setVisible(true);
}
}
class MyPanel extends JPanel implements KeyListener{
int x = 10;
int y = 10;
public void paint(Graphics g){
super.paint(g);
g.fillOval(x, y, 10, 10);
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO 自动生成的方法存根
// System.out.println("Key is pressed." + (char)arg0.getKeyCode());
if(arg0.getKeyCode() == KeyEvent.VK_DOWN){
y++;
}
if(arg0.getKeyCode() == KeyEvent.VK_UP){
y--;
}
if(arg0.getKeyCode() == KeyEvent.VK_LEFT){
x--;
}
if(arg0.getKeyCode() == KeyEvent.VK_RIGHT){
x++;
}
this.repaint();
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO 自动生成的方法存根
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO 自动生成的方法存根
}
}
运行效果:(按动键盘上下左右键,小球会上下左右相应移动)
