2014-04-22 211 views
-1

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

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

只是为了确保,要添加监听器的按钮吗? – DeadChex

+0

好吧我会在这里听起来像一个白痴,并问你一个可能愚蠢的问题:通过听众你是指像Integer.parseInt或其他(我的课程是不是很丰富)编辑:我研究了它位,你的意思是像ActionListener – user3561829

回答

0

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


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

while (a <= value1) 

当会永远>值1循环的内部?

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

+0

好吧,谢谢,但我到底会如何使用摆动计时器?现在看起来是这样的代码是不工作的,因为当我点击我的GUI中的“计算”按钮时,它会“卡住”(我很不擅长) – user3561829

+0

@ user3561829:如果卡住了,你的while循环之一不会停止。至于如何使用Swing Timer,我建议你使用Google'Java Swing Timer Tutorial',第一次点击会帮助你。同样为了调试你的代码,并且看看是否发生了一个无限的或长时间运行的循环,在那里放置一些println语句。至于''我很不擅长这个'',练习会让你更好。 –

+0

@ user3561829:请参阅编辑以回答。 –

0

如果你想看到所有的输出,请尝试使用只读JTextArea这样的:

javax.swing.JTextArea outputBox = new JTextArea(); 
outputBox.append("" + square + "\n"); 
相关问题