因此我尝试将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");
}
}
});
}
答案 0 :(得分:0)
您希望e.getSource()
是输入的数字,但您得到的是导致事件发生的TextField
。您无法使用TextField
等将<
与数字进行比较。
由于您直接在ActionListener
注册了TextField
,因此您无需检查事件的来源。你知道它将是TextField
。
您想要做的是:
如果是事件(actionPerformed()
仅在TextField中发生操作时被调用),如果按下的键是Enter
,请从TextField
获取数字检查它的价值。