Jeg har lavet et lille program, hvor man kan skrive et tal, og så skrier det hvilke tal der går op i det.
Men når tallene er store, går der længere tid, da jeg bruger et for-loop.
Så tænkte jeg at jeg gerne ville have en progressbar, som viser hvor langt det er nået, eller at programmet printer tallen ud med det samme.
Problemet er bare at alt i for-loopet bliver regnet ud, før UI'et blivet opdateret.
Jeg har prøvet updateUI(), og det hjælper heller ikke.
Hvad gør jeg?
double divideret1, tal;
boolean primtal = true;
int progress;
String output = "";
jProgressBar1.setValue(0);
tal = Double.valueOf(PrimInput.getText());
PrimOutput.setText("");
for (double divider =1; divider <= tal; divider++) {
progress = Math.round((float)(divider/tal*100));
jProgressBar1.setValue(progress);
divideret1 = tal/divider;
if (divideret1 == (double) Math.round(divideret1)) {
output += (String.valueOf((int) divider) + ", ");
if (divideret1!= ((double) 1) && divideret1!= tal) {
primtal = false;
}
}
PrimOutput.setText(output);
}
if (primtal == true) {
PrimOutput.setText("PRIMTAL!");
}
På forhånd tak.
Indlæg senest redigeret d. 05.09.2008 07:11 af Bruger #13714