这是我的代码——不过,当我尝试运行该程序时,它不会打印/显示到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");