想要在JTextfield上面显示鼠标点击过的button上的文本,但是出现了
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException: Cannot invoke “javax.swing.JTextField.setText(String)” because “this.jt” is null
at Calculation.actionPerformed(Calculation.java:94)错误,不知道为啥,
下面是源代码

import javax.swing.;
import java.awt.
;
import java.awt.event.*;

public class Calculation extends JFrame implements ActionListener {
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19;
JTextField jt;
JFrame f;
public Calculation() {
b1 = new JButton("%");
b2 = new JButton(“CE”);
b3 = new JButton(“C”);
b4 = new JButton("<-");
b5 = new JButton(“7”);
b6 = new JButton(“8”);
b7 = new JButton(“9”);
b8 = new JButton("*");
b9 = new JButton(“4”);
b10 = new JButton(“5”);
b11 = new JButton(“6”);
b12 = new JButton("-");
b13 = new JButton(“1”);
b14 = new JButton(“2”);
b15 = new JButton(“3”);
b16 = new JButton("+");
b17 = new JButton(“0”);
b18 = new JButton (".");
b19 = new JButton("=");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this);
b18.addActionListener(this);
b19.addActionListener(this);
JPanel p=new JPanel();
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(4,4));
JPanel p2=new JPanel();
p2.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
JTextField jt=new JTextField(20);
jt.setFont(new Font(“Roman”, Font.PLAIN, 20));
jt.setBackground(Color.white);
jt.setEditable(false);
p.setBackground(new Color(69,137,148));
p.setSize(400,300);
p.setLayout(new BorderLayout(2,2));
p.add(BorderLayout.NORTH,jt);
p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);p1.add(b6);p1.add(b7);
p1.add(b8);p1.add(b9);p1.add(b10);p1.add(b11);p1.add(b12);p1.add(b13);
p1.add(b14);p1.add(b15);p1.add(b16);
p.add(BorderLayout.CENTER,p1);
b17.setPreferredSize(new Dimension(200,28));
b18.setPreferredSize(new Dimension(100,28));
b19.setPreferredSize(new Dimension(100,28));
p2.add(b17);p2.add(b18);p2.add(b19);
p.add(BorderLayout.SOUTH,p2);
setContentPane§;

}

public void actionPerformed(ActionEvent e) {
	if(e.getSource() == b1){
		jt.setText(jt.getText()+e.getActionCommand());}
	else if(e.getSource() == b2){
		jt.setText("CE");}
	else if(e.getSource() == b3){
		jt.setText("c");}
	else if(e.getSource() == b4){
		jt.setText("<-");}
	else if(e.getSource() == b5){
		jt.setText("7");}
	else if(e.getSource() == b6){
		jt.setText("8");}
	else if(e.getSource() == b7){
		jt.setText("9");}
	else if(e.getSource() == b8){
		jt.setText("*");}
	else if(e.getSource() == b9){
		jt.setText("4");}
	else if(e.getSource() == b10){
		jt.setText("5");}
	else if(e.getSource() == b11){
		jt.setText("6");}
	else if(e.getSource() == b12){
		jt.setText("-");}
	else if(e.getSource() == b13){
		jt.setText("1");}
	else if(e.getSource() == b14){
		jt.setText("2");}
	else if(e.getSource() == b15){
		jt.setText("3");}
	else if(e.getSource() == b16){
		jt.setText("+");}
	else if(e.getSource() == b17){
		jt.setText("0");}
	else if(e.getSource() == b18){
		jt.setText(".");}
	else if(e.getSource() == b19){
		jt.setText("=");}
	
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Calculation f = new Calculation();
	f.setTitle("计算器");
	f.setSize(400,300);
    Image img=new ImageIcon("D:\\eclipse\\picture\\calculation.jfif").getImage();
    f.setIconImage(img);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setResizable(false);
    f.setLocationRelativeTo(null);
    f.pack();
	f.setVisible(true);
}

}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐