Java、GUI:检查输入是否为偶数
我正在使用Java制作一个GUI程序,以检查用户的输入是否为偶数(整数)。我尝试了Integer.parseInt(),但没有成功。当我尝试输入一个数字时,会出现很多错误(我可以打开GUI) 守则:Java、GUI:检查输入是否为偶数,java,user-interface,Java,User Interface,我正在使用Java制作一个GUI程序,以检查用户的输入是否为偶数(整数)。我尝试了Integer.parseInt(),但没有成功。当我尝试输入一个数字时,会出现很多错误(我可以打开GUI) 守则: package kip; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Kip2 extends JFrame { private JTextField one; pri
package kip;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Kip2 extends JFrame {
private JTextField one;
private JTextField two;
int number;
String text;
public Kip2(){
super("Title");
setLayout(new FlowLayout());
one = new JTextField(10);
text = one.getText();
add(one);
two = new JTextField("Enter a number: ");
two.setEditable(false);
add(two);
hand handler = new hand();
one.addActionListener(handler);
two.addActionListener(handler);
}
public class hand implements ActionListener{
public void actionPerformed(ActionEvent event){
String msg = "";
if (event.getSource()==one)
number = Integer.parseInt(text);
if (number%2==0)
msg = msg.format("%s is even!", one);
else
msg = msg.format("%s is not even!", one);
JOptionPane.showMessageDialog(null, msg);
}
}
}
这就是错误(我不太理解):
您应该在触发事件之前,从
textfield
设置String text
值
像这样
public void actionPerformed(ActionEvent event) {
String msg = "";
text=one.getText(); // add this line // set value of String text to value of one textfield when event fire
当GUI启动时,您当前从文本字段设置了字符串文本
。因此,当GUI启动时,没有文本,只有一个空的字符串
。尝试将空字符串转换为整数时会出错
java.lang.NumberFormatException: For input string: ""
^
empty String
而且您可能还需要使用
msg = msg.format("%s is even!", text); // same for odd line
而不是
msg = msg.format("%s is even!", one);
如果您打印一个,它将显示一个文本字段的来源
下面是我不理解“检查输入是否为偶数”以及您所问的关于从gui接收整数的问题。。
msg = msg.format("%s is even!", one);