Java Threads
Geizhals » Forum » Programmierung » Java Threads (19 Beiträge, 134 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: Java Threads
thE
15.01.2008, 11:17:32
Die GUI kann nur im EventDispatcherThread neu gezeichnet werden!

Wenn dann musst du die Arbeit in einen Thread auslagern und nicht die GUI Operationen!

Falls du nach einem Button druck/klick etwas machen willst, empfehle ich dir die foxtrot API!
Zb so geht das

      public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_SPACE)
        {
          System.out.println("VORM ARBEITEN");
          try{
            Object ret = foxtrot.ConcurrentWorker.post(new foxtrot.Job() {
              public Object run() {
                System.out.println("ARBEITE");
                //hier arbeite
                return null;
              }
            });
          }catch(Exception ex){
            ex.printStackTrace(System.out);
          }
          System.out.println("NACH ARBEITE!");
        }

die Arbeit in der run Methode wird ganz normal ausgeführt und die GUI wird nicht BLOCKIERT! Desweiteren leibt das ganze Teil STEHEN!
So sind die Ausgabe hier:
VORM ARBEITEN
ARBEITE
NACH ARBEITE


Bei nem new Thread wird einfach dahinter weitergemacht! foxtrot macht das aber nicht!

Nachtrag: hier ein nettes Video zu dem Problem SwingGUI hängt!
http://www.javalobby.org/eps/galbraith-swing-2/
...
:P
15.01.2008, 11:18 Uhr - Editiert von thE, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung