有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您希望e.getSource()是输入的数字,但您得到的是导致事件发生的TextField。你不能用TextField之类的数字来比较<

    由于直接在TextField上注册ActionListener,因此不必检查事件的源。你知道那将是TextField

    你想做的是:

    在事件的情况下(只有在文本字段中发生操作时才会调用actionPerformed()),如果按下的键是Enter,则从TextField中获取数字并检查其值