tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
327
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Hi,

    ich versuche zu verhindern, das der Nutzer meines Programms während eines zeitaufwändigen Ladevorgangs einen weiteren startet, ohne vorher den begonnenen zu beenden.

    Ich habe mich schon etwas umgesehen und mehrere Möglichkeiten gefunden:

    - JFrame.setFocusable(false)
    - JFrame.setEnabled(false) //scheint nicht zu funktionieren
    - eine GlassPane
    - ein Progress Monitor

    ich meine mich zu erinnern, das es eine ganz leichte Methode gab zu verhindern, das der Nutzer etwas anklickt. Aber ich komme einfach nicht drauf.
    Ich hab schon überlegt ob ich einfach alle Komponenten auf Enabled=false setze. Aber es muss doch eine schönere Variante geben!

    Ich bin am verzweifeln
    Bitte, bitte helft mir!
     

  2. #2
    Avatar von schnuffie
    schnuffie schnuffie ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Ort
    Ober-Roden (Hessen)
    Beiträge
    725
    Du könntest das Ganze aber auch unkomplizierter machen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    //...
    private boolean bAction;
     
    public void actionPerformed(ActionEvent ae) {
      if (!bAction) {
        bAction = true;
        //zeitaufwendiges Laden
        bAction = false;
      }
    }
     
    CU schnuffie

    Fragliche Fragen stellende Fragensteller sind für verantwortungslose Antworten antwortender verantwortlicher Antworter selbst verantwortlich.

  3. #3
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Du meinst also bei jeder Action abfragen ob ich gerade lade? Ich denke generell ist das eine gute Idee. Ich bin mir nur nicht sicher, ob ich das bei mir umsetzen kann, weil Actionhandler auch von anderen Actionhandlern aufgerufen werden und es dann Probleme geben wird.

    Aber ich werde mal schauen, ob sich deine Idee umsetzen läßt.

    Danke schonmal
     

  4. #4
    Avatar von schnuffie
    schnuffie schnuffie ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Ort
    Ober-Roden (Hessen)
    Beiträge
    725
    Wer hindert Dich dran, für jede Aktion einen eigenen ActionListener zu verwenden?
     
    CU schnuffie

    Fragliche Fragen stellende Fragensteller sind für verantwortungslose Antworten antwortender verantwortlicher Antworter selbst verantwortlich.

  5. #5
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Meine Faulheit. Ich habe um Code zu sparen das Laden jeder Tabelle nur einmal aufgeschrieben, brauche es aber an mehr als einer Stelle und ab und zu werden auch mehrere Tabellen geladen und nicht nur eine.
    Es würde wesentlich mehr Aufwand bedeuten jedesmal alles nocheinmal zu schreiben.


    So habe es jetzt ausprobiert nur ein paar Aufrufe verschoben und die Variable eingefügt und jetzt klappt's.

    Danke schnuffie

    Da nochmal Probleme aufgetaucht sind habe ich noch eine andere Variante versucht, die ich woanders gefunden habe:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    private void setWindowDisabled()
        {
          java.awt.Component c;  
          for (int i = 0;i<center.getComponentCount();i++) {
                c = center.getComponent(i);
                c.setEnabled(false);            //center ist das Panel auf dem alles liegt
            } 
            this.center.setEnabled(false);
        }

    und

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    private void setWindowEnabled()
        {
          java.awt.Component c;  
          for (int i = 0;i<center.getComponentCount();i++) {
                c = center.getComponent(i);
                c.setEnabled(true);
            } 
            this.center.setEnabled(true);
        }

    das funktioniert gut und fehlerfrei. Nur falls jemanden das gleiche Problem quält.

    ulki
    Geändert von ulki (05.04.05 um 10:35 Uhr)
     

Ähnliche Themen

  1. Probleme mit Enable
    Von Zesai im Forum ASP
    Antworten: 0
    Letzter Beitrag: 28.05.08, 10:22
  2. Datagrid Scrollbalkenproblem bei Enable=False
    Von Yoah im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 30.09.05, 10:30
  3. Button enable Problem
    Von nick2005 im Forum Flash Plattform
    Antworten: 9
    Letzter Beitrag: 11.07.05, 16:50
  4. enable / disable
    Von wal im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 05.05.04, 11:14
  5. You must enable xinetd to use this service
    Von vaporizer im Forum Linux & Unix
    Antworten: 3
    Letzter Beitrag: 03.05.04, 06:36