在TextField中显示文本时出现问题

时间:2016-02-29 19:32:14

标签: java swing loops netbeans

我的循环有一个小问题,我无法弄清楚它为什么不起作用。我试图让TextField从一条消息更改为另一条消息,具体取决于他们是按下Odd尝试按钮还是尝试按下。

似乎我的display = count % 2在某种程度上搞砸了,而且根本没有正确地进行数学运算。在控制台中,我放置了一个print语句来测试它,它似乎只是打印出来"1"所以它从来都不奇怪,我猜它不会打印出另一个语句?

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

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

JAVA SOURCE CODE:

    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);
        }
    }
}

2 个答案:

答案 0 :(得分:3)

你的代码正在做好数学运算,这是你的逻辑搞砸了。代码只打印&#34; 1&#34;因为您只从if / else块的else部分打印。如果你还在块的if部分添加了println,那么你会看到很多&#34; 0&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;

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

将来,不要将代码作为图片发布。将其作为格式化为代码的文本发布,以便我们可以根据需要进行复制和粘贴。

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

答案 1 :(得分:0)

放一个System.out.println(显示);在if语句中。你只是在其他地方调试。它最有可能工作。