java - 在 TextField 中显示文本时出现循环问题

标签 java swing loops netbeans

我的循环有一个小问题,我不明白为什么它不起作用。我试图让 TextField 从一条消息更改为另一条消息,具体取决于他们是在奇数尝试还是偶数尝试中按下按钮。

看来我的 display = count % 2 不知何故搞砸了,根本没有正确地进行数学计算。在控制台中,我放置了一个打印语句来测试它,它似乎只是打印出 "1" 所以我猜它从来都不奇怪,所以它不会打印出其他语句?

我确信这很简单,但我一直无法弄清楚。感谢您的帮助!

我将附上Java源代码的屏幕截图。

<小时/>

JAVA 源代码:

    private void btnClickMeMouseReleased(java.awt.event.MouseEvent evt) {                                         
    // TODO add your handling code here:

    setDisplay();
}                                        

private void setDisplay() {
    int display;

    for(int count = 1; count < 10; count++){
        display = count%2;

        if(display == 0) {
        lblHello.setText(hello);
        } else {
            lblHello.setText(null);
            System.out.println(display);
        }
    }
}

最佳答案

你的代码数学运算得很好,只是你的逻辑困惑了。该代码只会打印“1”,因为您仅从 if/else block 的 else 部分进行打印。如果您还在 block 的 if 部分添加 println,您将看到大量“0”的打印输出。

你最大的错误是使用 for 循环——不要这样做,因为每次调用 setDisplay() 时,你的循环都会运行,并且总是在 9 处结束,并且只有 "" 将显示。相反,摆脱 for 循环并增加 actionPerformed 内的计数器变量,并根据其值执行操作。

以后,不要将代码作为图像发布。将其作为代码格式的文本发布,以便我们可以在需要时复制并粘贴它。

其他问题 - 不要将 MouseListener 添加到 JButton。使用 ActionListener 的原因有很多,特别是它的行为与大多数其他按钮类似,并且会在按下空格键时激活,并且在按钮被禁用时停用。

关于java - 在 TextField 中显示文本时出现循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35708009/

相关文章:

loops - Fortran forall 限制

c - C中的内循环和外循环

java - 唯一数字数组

c# - Java Service 类,类似于 C# 的 ServiceBase

java - 无法在 call.enqueue 中的 for 循环之外获取 ArrayList

Java堆叠组件

java - AbstractTableModel 名称 列 sql 中的帮助

java - JXDatePicker 中的动态 JFormattedTextFields

java - 接收错误: 1064 on oneToMany mapping

java - 如何使用 Hamcrest 断言一个通用的整数列表?