Avatar billede wizzcat Nybegynder
20. maj 2001 - 00:25 Der er 5 kommentarer og
1 løsning

refresh af skærm

SItuation: en algoritme kører i en Thread og sender løbende besked om dets status.
Den primære Thread som alt restkører i, står i en while løkke og opdaterer de ting som algoritmen returner.
Ved System.outprintln kan man se at den (som ønsket) hver ½sek kører en update rutine til en frame.

Men, selv om framen opdateres vises det ikke før while løkken er færdig, og hvis noget anden kommer hen over framen imens så bliver den hvidt(altså ingen opdatering)

Problem:
Hvoddan tvinger man JAVA til at opdatere frames, skærmbillder mv når man ønsker det???.



Avatar billede moroax Nybegynder
20. maj 2001 - 00:36 #1
Øhh... sådan :

<script>
setTimeout(\"parent.menu.location=\'../menu.asp\';\", 100);
</script>
Avatar billede wizzcat Nybegynder
20. maj 2001 - 00:42 #2
JA jo, det er ikke en applet/javascript, men en alm. Java applikation
Avatar billede moroax Nybegynder
20. maj 2001 - 00:48 #3
Wops...
Zorry ;)
Avatar billede mpultz Nybegynder
20. maj 2001 - 09:11 #4
Det lyder som om din while løkke bliver eksekveret i \"the event patching thread\", altså hovedtråden. Det er en dårlig ide da while løkken vil optage alt processortiden (GUI opdatering er single threaded så alt din opdateringskode vil først blive eksekveret når while løkken er færdig). Brug metoderne invokeLater eller invokeAndWait fra SwingUtilities til at opdatere GUI (se nederst). Kald en af dem f.eks. fra din algoritme tråd eller fra en seperat tråd og lad den kommunikere med din algoritme tråd. På den måde kan du også undgå at din while løkke unødigt optager processortiden.

invokeLater(new Runnable() {
  public void run()
  {
    // indsæt kode til at opdatere GUI
  }
});
Avatar billede logical Nybegynder
20. maj 2001 - 10:21 #5
Den hedder \"Event Dispatching Thread\" :-) men ellers er det fuldstændig rigtig nok.

Avatar billede mpultz Nybegynder
20. maj 2001 - 10:47 #6
Du har ret logical. wizzcat, husk iøvrigt at prefixe SwingUtilities. på metoderne invokeXXX da de er statiske.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester