我想添加两个数字并将结果放入 JTextFields (文本框)。为什么这段代码不起作用?
public class Window extends JFrame implements ActionListener {
private JButton plus;
private JLabel text;
private JTextField textbox1;
private JTextField textbox2;
public Okno(){
this.setLayout(new FlowLayout());
this.setBounds(400,400,400,400);
plus = new JButton("+");
text = new JLabel("");
plus.addActionListener(this);
textbox1 = new JTextField(" ");
textbox2 = new JTextField(" ");
this.add(text);
this.add(textbox1);
this.add(textbox2);
this.add(plus);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(plus)){
int result = Integer.valueOf(textbox1.getText()) + Integer.valueOf(textbox2.getText());
text.setText(Integer.toString(result)); //gtregergregergergreg
}
}
}
感谢您的帮助。
答案 0 :(得分:0)
如果在将数字放入文本字段时删除空格,则可以正常工作,否则会出现NumberFormatException。顺便说一下,不要使用空格来对齐文本字段。您可以使用setColumns
或不同的布局管理器。此外,如果要将输入加在一起,您应该验证输入以确保只有数字。
答案 1 :(得分:0)
从以下位置删除空格:
textbox1 = new JTextField(" ");
textbox2 = new JTextField(" ");
导致在解析为Integer时失败。 设置textbox1和textbox2的首选大小:
textbox1 = new JTextField();
textbox1.setPreferredSize(new Dimension(20,20));
textbox2 = new JTextField();
textbox2.setPreferredSize(new Dimension(20,20));
希望我帮助过:)