java将Textfield输入转换为int,然后限制值
因此,我试图将文本字段输入解析为int,然后按enter键。如果该值介于1和50之间,则会出现一个错误,如果不是,则会转到我程序的其余部分。我目前正在测试,看看是否可以让动作事件正常工作
这就是我目前拥有的
我得到了错误的操作数<;=及>;。我不是在寻找任何人来解决这个问题,但如果有人对我做错了什么有任何链接或建议,我将不胜感激
公共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 楼答案
您希望
e.getSource()
是输入的数字,但您得到的是导致事件发生的TextField
。你不能用TextField
之类的数字来比较<
由于直接在
TextField
上注册ActionListener
,因此不必检查事件的源。你知道那将是TextField
你想做的是:
在事件的情况下(只有在文本字段中发生操作时才会调用
actionPerformed()
),如果按下的键是Enter
,则从TextField
中获取数字并检查其值