我的循环有一个小问题,我不明白为什么它不起作用。我试图让 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/