Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Jdialog mit Jprogressbar in eigenem Thread - Wie parrent setzen?

  1. #1
    k4zZ
    Gast

    Jdialog mit Jprogressbar in eigenem Thread - Wie parrent setzen?

    Hallo alle zusammen & frohe Ostern nachträglich!

    Ich arbeite gerade an einem kleinen Javaprogramm wo ein komplexer vorgang ausgeführt werden soll, welcher einige zeit in anspruch nehmen wird. Deswegen möchte ich dass sich vor meinem Hauptfenster ein JDialog mit JProgressbar öffnet (mit setIndeterminate(true) solange diese aufgabe läuft. Dieser JDialog soll das Hauptfenster blockieren so das man keine eingaben machen kann.

    Nach Abschluss der komplexen Aufgabe soll sich das fenster wieder verschwinden und die GUI wieder freigeben. Das ganze lässt sich ja normalerweise mit dem parrent parameter lösen.

    Ich hab soweit alles hinbekommen, nur das das Hauptfenster gesperrt wird klappt nicht so recht -der Benutzer kann noch fröhlich klicken .

    Ich starte den JDialog zusammen mit der Aufgabe zusammen in einem eigenen Thread der durch den ActionHandler des hauptfensters aufgerufen wird. Seht es euch am besten mal selbst an - für eure Hilfe wäre ich euch echt dankbar!

    Überigens: Ein aussagekräftigeres voll lauffähiges Beispiel habe ich als neteansprojekt angefügt.

    Auszug aus der GUI.java:
    Code:
     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            Thread taskThread = new Thread()
            {
                public void run(){
                    ProgressDialog dialog = new ProgressDialog();
                    dialog.setLocationRelativeTo(null);
                    Task.ComplexTask();
                    dialog.dispose();
                }
            };
            taskThread.start();
    }
    Geändert von k4zZ (10-04-2007 um 14:47 Uhr) Grund: Angehängte Beispieldatei auf Java 1.5 rückportiert

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Code:
    dialog.setModal(true)
    Das aufgerufen, bevor du den Task startest sollte die anderen Fenster blockieren. Ab Java 6 gibt es die Methode setModalityType die benutzt werden sollte, da musst du vielleicht nochmal in die API schauen, was da konkret benutzt werden muss.
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  3. #3
    k4zZ
    Gast
    Danke für deine antwort. Die idee mit "setModal" ist gut nur leider will sie nicht so recht funktionieren =/. Kann das daran liegen das dass fenster mit in dem neuen Thread erstellt wird?

    Die andere Sache mit "setModalityType()" möcht ich doch nicht benutzen weil ich mich nun doch entschlossen hab, java 1.5 mit zu unterstützen... deswegen hab ich mein angehängtes beispiel oben jetzt auch auf java 1.5 umgemüntzt .

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •