将Textfield输入转换为int然后限制该值

时间:2014-03-28 18:58:03

标签: java

因此我尝试将Textfield输入解析为int然后按Enter键。如果值介于1和50之间,则会出现错误,如果不是我的程序的其余部分。我目前正在测试是否可以让Action事件发挥作用。

这就是我目前所拥有的。

我得到了糟糕的操作数< =和>。我不是在寻找任何人来解决这个问题,但是如果有人对我做错了什么有任何联系或建议,我将不胜感激。

public void init()  {

setLayout( new FlowLayout());
label1= new JLabel( "Please enter number of rows" );
tf1= new JTextField(5);
String text = tf1.getText();
int first=Integer.parseInt(text);

add (label1);
add (tf1);

  tf1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        //System.out.println("Enter pressed");

        if (e.getSource()<=20){
            System.out.println("Correct");
        }
        else if (e.getSource()>20){
            System.out.println("Try again");
        }
    }
}); 
    }

1 个答案:

答案 0 :(得分:0)

您希望e.getSource()是输入的数字,但您得到的是导致事件发生的TextField。您无法使用TextField等将<与数字进行比较。

由于您直接在ActionListener注册了TextField,因此您无需检查事件的来源。你知道它将是TextField

您想要做的是:

如果是事件(actionPerformed()仅在TextField中发生操作时被调用),如果按下的键是Enter,请从TextField获取数字检查它的价值。