Fensterbedinung erzwingen

Status
Nicht offen für weitere Antworten.

MichaelR

Aktives Mitglied
Hallo zusammen,

ich hab eine Frage. Ich möchte ein Frame öffnen und erzwingen, dass es bedint wird und man nicht wieder den focus auf andere Fenster setzen kann. Es sollte so sein wie in einer JOption Pane.
Ich gehe davon aus, dass es einfach ein this.setIrgendwas im Konstruktor ist. Leider hab ich keine Ahnung, wie man sowas nennen soll, weswegen meine Google Anfragen auch nichts rauswerfen.
 

SuperSeppel13

Bekanntes Mitglied
Benutze statt JFrame einfach JDialog. Dort kannst du schon dem Konstruktor einen Parameter übergeben, der das von dir gewünschte Verhalten auslöst.

Zum Beispiel:
Java:
JDialog dialog = new JDialog(someJFrame, true);
 

MichaelR

Aktives Mitglied
Ja, habs getestet, ist gar nicht so schlecht. Aber man kann immer noch das Fenster, also den owner auswählen und auf dem weiter rum klicken. Es sollte eine Passwort Abfrage werden, und es soll nur möglich sein, weiter zu machen, wenn man das richtige passwort eingibt oder das Fenster schließt. Also, dann gehts net weiter, aber man landet wieder auf dem Fenster, von dem man geklickt hat.
Die javax.swing.JOptionPane hat genau die Funktion und ich habs auch mal in der Vorlesung gehört, kann mich aber leider nicht mehr erinnern, wie des gemacht wird.
 

madboy

Top Contributor
Die Eigenschaft vom Fenster, die du suchst nennt sich "modal". Einfach mal danach suchen (Forum oder Netz) :)
 

eRaaaa

Top Contributor
Java:
JOptionPane.showInputDialog(frame,"Nachricht hier");

???:L
 

SuperSeppel13

Bekanntes Mitglied
Stimmt, mit JOptionPane sollte das am einfachsten sein:
Java:
String s = JOptionPane.showInputDialog(parent, 
                                 "Bitte geben Sie ihr Passwort ein.", 
                                 "Passwortkontrolle", 
                                 JOptionPane.OK_CANCEL_OPTION);
s kannst du dann später auswerten (s ist null, wenn die eingabe abgebrochen wird).

Ich glaube, das würde schon tun, was du möchtest.
Wenn du auch willst, dass der eingegebene Text nur als Punkte erscheint, musst du doch JDialog benutzen und mit JPasswordField arbeiten.
JDialog kann den Zugriff auf das Parent-Fenster blockieren! Alle JOptionPanes basieren auf JDialog - es geht also mit Sicherheit.
 

MichaelR

Aktives Mitglied
Naja, ich möchte mir einen eigenen Dialog programmieren. Für eine Passwortabfrage ist ja ein jPasswortTextfield ja schöner und ich brauche nur einen Button Ok.

Des mit dem modal wars, muss jetzt nur noch rausfinden, wie des dem Dialog mitteile, dass er modal zu sein hat.
 

SuperSeppel13

Bekanntes Mitglied
... im Konstruktor, wie in meinem Beispiel.
Du kannst dort einen Parameter "boolean modal" angeben. Ist der "true" (wie ine meinem Beispiel), sollte es so funtkionieren, wie du es möchtest.
 

MichaelR

Aktives Mitglied
Ja, hab ich rausgefunden.
Hat am Anfang nicht geklappt. Ich vermute, es lag daran, dass ich den Dialog zuerst auf visible(true) gesetzt hab und erst danach modal(true).
Nachdem ich die Befehlte getauscht hab hats wunderbar geklappt.

Vielen Dank für die Hilfe.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben