ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
327
327
EMPFEHLEN
-
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!
-
04.04.05 14:36 #2
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.
-
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
-
04.04.05 15:06 #4
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.
-
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.
ulkiGeändert von ulki (05.04.05 um 10:35 Uhr)
Ähnliche Themen
-
Probleme mit Enable
Von Zesai im Forum ASPAntworten: 0Letzter Beitrag: 28.05.08, 10:22 -
Datagrid Scrollbalkenproblem bei Enable=False
Von Yoah im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 30.09.05, 10:30 -
Button enable Problem
Von nick2005 im Forum Flash PlattformAntworten: 9Letzter Beitrag: 11.07.05, 16:50 -
enable / disable
Von wal im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 05.05.04, 11:14 -
You must enable xinetd to use this service
Von vaporizer im Forum Linux & UnixAntworten: 3Letzter Beitrag: 03.05.04, 06:36





Zitieren
Login





