20. maj 2001 - 00:25Der 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???.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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 } });
Du har ret logical. wizzcat, husk iøvrigt at prefixe SwingUtilities. på metoderne invokeXXX da de er statiske.
Synes godt om
Ny brugerNybegynder
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.