java - 如果语句和 Swing 没有按预期工作,如何让 EDT 进入休眠状态?

标签 java multithreading swing

我有一个JTextField命名tf 。用户应该在字段中输入他的名字。我还有一个Jbutton命名p我以 p's 的方式编写了以下代码actionListener仅当用户在文本字段中输入内容时才应运行。但是if statement里面的代码即使在空文本字段中未输入任何内容,也会运行。

    while(true)
    {
        if(tf.getText()!=null)
        {
    p.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent e)


    {

        System.out.println("Welcome to Guess the number Game");
        System.out.println("You have 3 chances to guess a number between 0 and 10 excluding 10");
        ne.remove(p);

    }
    });
    break;
    }
    }

为什么程序没有按预期运行? 与线程有关吗?

有什么方法可以让 EDT(事件调度线程)进入休眠状态吗?

最佳答案

正如我的评论中所说,这应该可以解决您的问题

while(true) {
    if(null != tf.getText() && !tf.getText().equals("")) {
        //do stuff
    }
}

作为旁注,在处理这样的值时,我倾向于检查 null 和empty 以覆盖所有基础

关于java - 如果语句和 Swing 没有按预期工作,如何让 EDT 进入休眠状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35630195/

相关文章:

java - 不知道为什么我收到 java.util.NoSuchElementException 错误

java - QQWing 在我的 Android 应用程序中生成只有零的数独谜题

java - 阻塞对象属性

java - JScrollPaneLayout怎么设置和JTable一样?

java - 如何使用 AffineTransform 缩放 Swing 组件?

Java 图像编辑填充区域不起作用

java - 用户输入并附加到mysql

linux - 如何在 RT Linux : fails with SIGTRAP 上使用 GDB 进行调试

java - 如何强制 while 循环一次执行一个可运行程序。

java - 连续获取 jtable 值的总和