Java、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

我正在使用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;
    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);