2016-07-29 24 views
0

Ich habe 2 Frames auf meinem Projekt, die 1 ist mein Hauptrahmen und der zweite ist der Frame, der nur sichtbar ist, wenn ich auf den Button klicke.setze JFrame immer oben und deaktiviere alle JFrame dahinter

Zeigen Sie jframe.class an, wenn Sie auf klicken.

hier ist mein Code in Aktion meine Taste

ausgeführt
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     jframe jf = new jframe(); 
      jf.setVisible(true); 
      jf.setAlwaysOnTop(true); 
    } 

Dieser Code funktioniert, aber das Problem ist, ich den Hauptrahmen zu deaktivieren oder unclickable wollen, während der zweite Rahmen sichtbar ist ...

kann ich das gleiche Konzept von JOptionPane machen?

+2

See [Die Verwendung von mehreren JFrames, Gute/schlechte Praxis?] (Http://Stackoverflow.com/q/9554636/418556) –

Antwort

6

Sie sprechen im Wesentlichen von einem Modal. Sie sollten eine JDialog verwenden und die Modalität auf true gesetzt, während das Bestehen der JFrame in als Argument:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){ 
    myFrame = new JFrame("Hello World"); 
    modal = new JDialog(myFrame, "This is a modal!", true); 
    modal.setVisible(true); 
    modal.setLocationRelativeTo(null); //Center the modal 
} 

können Sie weitere Dokumentation finden Sie hier:

https://docs.oracle.com/javase/tutorial/uiswing/misc/modality.html

+0

vielleicht ist meine Frage so schlecht zu verstehen ... sorry darüber ... –

+0

Vielleicht verstehst du die Antwort nicht, aber es ist das gleiche, das viele für diese Anforderung geben würden. Es ist eine offensichtliche Passform. Wenn Sie dem Link folgen, den ich in einem Kommentar angegeben habe, könnten Sie bemerken, dass er auch (neben vielen anderen Möglichkeiten) modale Dialoge erwähnt. –

+0

die Wahrheit ist, ich habe eine Haupt jframe und wenn die Maus nicht bewegt wird es automatisch zeigt das Login-Formular und machen die Haupt Jframe deaktiviert. hoffe du verstehst was ich meine .. sorry für mein schlechtes englisch :-) –