因此,我编写了一个单独的程序,输出输入数(极限)以内的所有素数。它可以完美地工作,但是当我将代码添加到GUI代码中时,它只显示最后一个素数。例如,我输入9,它只显示7,因为7是9之前的最后一个质数。显然,GUI代码被for循环弄得一团糟,我不知道如何修复它。这里是代码(是在我的程序的底部),显示在文本区域的答案(代码的另一部分只是设置GUI)。请帮助!
public void actionPerformed(ActionEvent event){
//turns the inputNum text into type int and parsed into int input
//iterates through each number
for(){
//prints the primes that returned true in the isPrime method ONLY
if(isPrime(num)){
}
}
}
public static boolean checkForPrime(int num){
//for loop that checks if the inputed number is prime
不要在JTextArea上调用setText(...)
,因为将JTextArea中的当前文本替换为新文本。相反,在JTextArea上调用append(myText + "n");
,这样将创建新的行,每个行都有一个新答案的副本。
如,
if(checkForPrime(num)){
// assuming that answers is a JTextArea
answers.append(String.valueOf(num) + "n");
}
append方法将传入的String添加到已经显示在JTextArea .
每次循环设置文本。这样做:
if(checkForPrime(num)){
answers.setText(answers.getText(num + " "));//The space separates the numbers and makes it a String
}
这将在每次循环时添加数字。