Java - AWT/Swing

Aktionen nach GUI-Update ausführen

com.javax.SwingUtilities
Bei Swing ist der selbe Thread dafür zuständig, die Oberfläche neu zu zeichnen und die Events abzuarbeiten. Dies ist besonders unangenehm, wenn beim Drücken eines Buttons eine rechenintensive Operation ausgelöst wird. Dies führt dazu, dass der Button gedrückt erscheint, solange die Operation andauert. Das GUI wirkt eingefroren, bis die Operation abgeschlossen ist.



Hier stellen Die SwingUtilities zwei Methoden zur Verfügung: invokeLater und invokeAndWait.
invokeLater arbeitet asynchron, das Programm läuft also weiter.
invokeAnWait hingegen wartet bis die Operation abgeschlossen ist.

public void actionPerformed(ActionEvent e){
   try{
      SwingUtilities.invokeLater(new Runnable(){
         public void run() { 
            // Hier aufgeführter Code wird erst nach dem GUI-Update ausgeführt.
         }
      });
   }catch (Exception ex){
      ex.printStackTrace();
   }
}



Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007