为什么我的程序无法打印到我的 GUI?



这是我的代码——不过,当我尝试运行该程序时,它不会打印/显示到GUI中的finalResult文本字段。有什么想法吗?

 private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
    // Coding:
    int a = 1;
    userInput = minInput.getText();
    int value1 = Integer.parseInt(userInput);
    userInput2 = maxInput.getText();
    int value2 = Integer.parseInt(userInput2);

    while (a <= value1)
   {
        //Print numbers inbetween user's value and 1:
      int square = value1*value1;
        //Print:
        finalResult.setText("" + square);
        //Modifier:
        value1 = value1  + 1;
   }
   for (a = 0; a <= value1; a ++)
   {
        finalResult.setText("" + a*a);
   }

   while (value1 < value2)
   {
        //Print numbers inbetween value 2 and valeu1:
      int square = value2*value2;
        //Print:
        finalResult.setText("" + square);
        //Modifier:
        value2 = value2  + 1;
   }
   for (a = 0; a <= value2; a ++)
   {
        finalResult.setText("" + a*a);
   }

您的代码正在工作,但那些for循环循环非常快,因此您不会看到文本字段发生的更改。无论你做什么,都不要使用Thread.sleep(...)来解决这个问题,而是考虑使用Swing Timer来代替那些for循环,这样你就可以看到临时结果。


编辑
看起来这个循环永远不会结束:

while (a <= value1)

循环内的值何时大于value1?

下一个while循环也可能出现同样的问题。

如果您想查看所有输出,请尝试使用只读JTextArea,如下所示:

javax.swing.JTextArea outputBox = new JTextArea();
outputBox.append("" + square + "n");

相关内容

  • 没有找到相关文章

最新更新