Java 希望结果显示在表单上
我希望结果显示在表单上 为什么这个代码不起作用Java 希望结果显示在表单上,java,swing,Java,Swing,我希望结果显示在表单上 为什么这个代码不起作用 package Swing1_1; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextF
package Swing1_1;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Swing2 {
public static void main(String args[])
{
Addition obj=new Addition();
obj.setVisible(true);
}
}
class Addition extends JFrame implements ActionListener
{
JTextField t1,t2;
JLabel lbl;
JButton b1;
public Addition()
{
JTextField t1=new JTextField(20);
JTextField t2=new JTextField(20);
JLabel lbl=new JLabel("Result");
JButton b1=new JButton("OKey");
add(t1);
add(t2);
add(b1);
add(lbl);
setLayout(new FlowLayout());
//setVisible(true);
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b1.addActionListener(this);//
}
public void actionPerformed( ActionEvent ae)
{
int num1,num2,value;
num1=Integer.parseInt("12");
num2=Integer.parseInt("20");
value=num1+num2;
//System.out.println(value +"");
lbl.setText(value +"");
}
}
实现的问题是在加法类中将lbl[1]变量声明为实例变量,并且在构造函数中再次声明与局部变量同名的新变量lbl[2]并实例化。在actionPerformed方法中,您重置了lbl变量的值,但在这里它试图重置lbl[1]的值。因此,它会引发异常,因为我们无法在不实例化的情况下将值重置为引用类型变量。所以代码应该遵循这一点
class Addition extends JFrame implements ActionListener {
JTextField t1, t2;
JLabel lbl;
JButton b1;
public Addition() {
JTextField t1 = new JTextField(20);
JTextField t2 = new JTextField(20);
lbl = new JLabel("Result");
JButton b1 = new JButton("OKey");
add(t1);
add(t2);
add(b1);
add(lbl);
setLayout(new FlowLayout());
// setVisible(true);
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b1.addActionListener(this);//
}
public void actionPerformed(ActionEvent ae) {
int num1, num2, value;
num1 = Integer.parseInt("12");
num2 = Integer.parseInt("20");
value = num1 + num2;
// System.out.println(value +"");
lbl.setText(value + "");
}
}
请阅读有关如何提问以及如何在问题中设置代码格式的在线帮助。我不能100%确定这是代码。在我看来像是一大堆的人物。您介意修改格式吗?请添加更多说明,例如此代码是否显示任何内容。欢迎使用堆栈溢出!看起来您可能需要学习使用调试器。请随便吃点。如果您以后仍有问题,请将您的问题更具体地说明您需要什么帮助。尝试删除JLabel lbl=new JLabelResult;此外,建造商和替换JLabel lbl;最终JLabel lbl=新JLabelResult;。。。回答得好OP:请稍后帮助其他人找到它。谢谢@AndrewThompson!: