案例显示了对控件的监听事件的不同使用方法。
方法一:
package Component;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Buju5 extends JFrame implements ActionListener {
JButton btn1=new JButton("north");
JButton btn2=new JButton("south");
JButton btn3=new JButton("east");
JButton btn4=new JButton("west");
JLabel j1=new JLabel("进行按钮操作");
Buju5(){
setLayout(new BorderLayout());
add(btn1,BorderLayout.NORTH);
add(btn2,BorderLayout.SOUTH);
add(btn3,BorderLayout.EAST);
add(btn4,BorderLayout.WEST);
add(j1,BorderLayout.CENTER);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btn1){
j1.setText("north");
btn1.setVisible(false);
btn2.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(true);
}else if(e.getSource()==btn2){
j1.setText("south");
btn2.setVisible(false);
btn1.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(true);
}
else if(e.getSource()==btn3){
j1.setText("east");
btn2.setVisible(true);
btn1.setVisible(true);
btn3.setVisible(false);
btn4.setVisible(true);
}else if(e.getSource()==btn4){
j1.setText("west");
btn2.setVisible(true);
btn1.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(false);
}
}
public static void main(String[] args) {
Buju5 buju5=new Buju5();
buju5.setBounds(300,250,300,200);
}
}
方法二:
package Component;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ya extends JFrame implements ActionListener {
JButton[] b=new JButton[4];
JTextField textField=new JTextField(8);
ya(){
b[0]=new JButton("north");
b[1]=new JButton("south");
b[2]=new JButton("east");
b[3]=new JButton("west");
setLayout(new BorderLayout());
add(b[0], BorderLayout.NORTH);
add(b[1],BorderLayout.SOUTH);
add(b[2],BorderLayout.EAST);
add(b[3],BorderLayout.WEST);
add(textField,BorderLayout.CENTER);
for(int i=0;i<4;i++){
b[i].addActionListener(this);
}
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,300,300);
}
@Override
public void actionPerformed(ActionEvent e) {
for(int i=0;i<4;i++){
String str=textField.getText();
if(b[i]==e.getSource()){
textField.setText("btn "+str+" i\n");
b[i].setVisible(false);
}else{
b[i].setVisible(true);
}
}
}
public static void main(String[] args) {
ya ya=new ya();
}
}
方法三:
package Component;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ma extends JFrame implements ActionListener {
JButton btn1=new JButton("north");
JButton btn2=new JButton("south");
JButton btn3=new JButton("east");
JButton btn4=new JButton("west");
JLabel j1=new JLabel("进行按钮操作");
ma(){
setLayout(new BorderLayout());
add(btn1,BorderLayout.NORTH);
add(btn2,BorderLayout.SOUTH);
add(btn3,BorderLayout.EAST);
add(btn4,BorderLayout.WEST);
add(j1,BorderLayout.CENTER);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
int n=0;
if(e.getSource()==btn1){
n=1;
}else if(e.getSource()==btn2){
n=2;
}else if(e.getSource()==btn3){
n=3;
}else if(e.getSource()==btn4){
n=4;
}
switch (n){
case 1:
j1.setText("north");
btn1.setVisible(false);
btn2.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(true);
break;
case 2:
j1.setText("south");
btn2.setVisible(false);
btn1.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(true);
break;
case 3:
j1.setText("east");
btn2.setVisible(true);
btn1.setVisible(true);
btn3.setVisible(false);
btn4.setVisible(true);
break;
case 4:
j1.setText("west");
btn2.setVisible(true);
btn1.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(false);
break;
}
}
public static void main(String[] args) {
ma ma=new ma();
ma.setBounds(100,100,300,300);
}
}