Java 按钮 监听 GUI,为什么按按钮的时候没有反应呢?(很简单的程序,请大神指教)
importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener...
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import javax.swing.*;
public class WorkerInformation extends JFrame implements ActionListener{
JLabel l1=null; //成员变量
JLabel l2=null;
JLabel l3=null;
JLabel l4=null;
JLabel l5=null;
JTextField tf1=null;
JTextField tf2=null;
JTextField tf3=null;
JTextField tf4=null;
JTextField tf5=null;
JButton b1=null;
JButton b2=null;
public WorkerInformation (){ //构造方法
super("员工基本信息");
//JFrame f=new JFrame("员工基本信息");
//Container c=f.getContentPane();
setLayout(new FlowLayout());
setBounds(0,0,600,600);
setVisible(true);
setLayout(null);
JLabel l1=new JLabel("工号:");
JLabel l2=new JLabel("姓名:");
JLabel l3=new JLabel("类别:");
JLabel l4=new JLabel("部门:");
JLabel l5=new JLabel("登录密码:");
JTextField tf1 = new JTextField();
JTextField tf2 = new JTextField();
JTextField tf3 = new JTextField();
JTextField tf4 = new JTextField();
JTextField tf5 = new JTextField();
JButton b1=new JButton("添加员工基本信息");
JButton b2=new JButton("查找员工基本信息");
add(l1);
add(l2);
add(l3);
add(l4);
add(l5);
add(tf1);
add(tf2);
add(tf3);
add(tf4);
add(tf5);
add(b1); //将事件对象加入容器中
add(b2);
l1.setBounds(50,50,80,30);
l2.setBounds(50,100,80,30);
l3.setBounds(50,150,80,30);
l4.setBounds(50,200,80,30);
l5.setBounds(50,250,200,30);
tf1.setBounds(150,50,150,30);
tf2.setBounds(150,100,150,30);
tf3.setBounds(150,150,150,30);
tf4.setBounds(150,200,150,30);
tf5.setBounds(150,250,150,30);
b1.setBounds(150,300,150,30);
b2.setBounds(150,350,150,30);
b1.addActionListener(this); //注册当前容器为事件对象监听者
b2.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1)
{System.out.println("你按下了第一个按钮");}
else if(e.getSource()==b2)
{System.out.println("你按下了第二个按钮");}
}
public static void main(String[] age){
WorkerInformation wi=new WorkerInformation(); //new一个
}
} 展开
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import javax.swing.*;
public class WorkerInformation extends JFrame implements ActionListener{
JLabel l1=null; //成员变量
JLabel l2=null;
JLabel l3=null;
JLabel l4=null;
JLabel l5=null;
JTextField tf1=null;
JTextField tf2=null;
JTextField tf3=null;
JTextField tf4=null;
JTextField tf5=null;
JButton b1=null;
JButton b2=null;
public WorkerInformation (){ //构造方法
super("员工基本信息");
//JFrame f=new JFrame("员工基本信息");
//Container c=f.getContentPane();
setLayout(new FlowLayout());
setBounds(0,0,600,600);
setVisible(true);
setLayout(null);
JLabel l1=new JLabel("工号:");
JLabel l2=new JLabel("姓名:");
JLabel l3=new JLabel("类别:");
JLabel l4=new JLabel("部门:");
JLabel l5=new JLabel("登录密码:");
JTextField tf1 = new JTextField();
JTextField tf2 = new JTextField();
JTextField tf3 = new JTextField();
JTextField tf4 = new JTextField();
JTextField tf5 = new JTextField();
JButton b1=new JButton("添加员工基本信息");
JButton b2=new JButton("查找员工基本信息");
add(l1);
add(l2);
add(l3);
add(l4);
add(l5);
add(tf1);
add(tf2);
add(tf3);
add(tf4);
add(tf5);
add(b1); //将事件对象加入容器中
add(b2);
l1.setBounds(50,50,80,30);
l2.setBounds(50,100,80,30);
l3.setBounds(50,150,80,30);
l4.setBounds(50,200,80,30);
l5.setBounds(50,250,200,30);
tf1.setBounds(150,50,150,30);
tf2.setBounds(150,100,150,30);
tf3.setBounds(150,150,150,30);
tf4.setBounds(150,200,150,30);
tf5.setBounds(150,250,150,30);
b1.setBounds(150,300,150,30);
b2.setBounds(150,350,150,30);
b1.addActionListener(this); //注册当前容器为事件对象监听者
b2.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1)
{System.out.println("你按下了第一个按钮");}
else if(e.getSource()==b2)
{System.out.println("你按下了第二个按钮");}
}
public static void main(String[] age){
WorkerInformation wi=new WorkerInformation(); //new一个
}
} 展开
1个回答
推荐于2017-06-30
展开全部
e.getSource()==b1和e.getSource()==b2,永远不会相等。。。。。。。添加Listener的是方法内的按钮 b1和b2、对比的是类变量b1和b2(都是null)
if(e.getSource()==b1)
不要使用==判断对象,,,,而是使用.equals() 判断
if(e.getSource()==b1)
不要使用==判断对象,,,,而是使用.equals() 判断
更多追问追答
追问
if(e.getSource().equals(b2))吗?这样会报空指针错误
追答
方法的变量,不要定义,,,,,直接使用类变量 。。。。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询