Frage

Ich habe eine JMenu mit einem JMenuItem, und wenn ich auf diese klicken, ich brauche ein JFrame oder Fenster zu öffnen, mit anderen Worten eine Komponente mit innen JButton, JTextField, ...

Wie kann ich das tun?

War es hilfreich?

Lösung

Sie können die JFrame in der gleichen Art und Weise erstellen Sie Ihren ersten JFrame erstellt und Anruf

setVisible(true);

in der ActionListener Ihrer JMenuItem es sichtbar zu machen, wenn das Menü angeklickt wird.


Wenn Sie es wünschen modal zu sein (Originalrahmen nicht zugegriffen werden kann, wenn das neue Fenster geschlossen ist), können Sie einen JDialog stattdessen verwenden, modal auf true im Konstruktor Einstellung oder setModal(true) aufrufen.

Andere Tipps

schreibe ich in der Antwort für eine gute Code-Ansicht:

Wenn ich einen JFrame ich diese Fehlermeldung bekommen: . "Java.lang.IllegalArgumentException: Hinzufügen eines Fensters in einen Behälter"

Das ist mein Code in actionPerformed Methode:

PopupFactory factory = PopupFactory.getSharedInstance();
JFrame frame = new JFrame();
frame.setLayout(null);
frame.setBounds(428, 99, 185, 155);

final JButton button = new JButton();
button.setText("Button");
button.setBounds(10, 93, 111, 25);
frame.getContentPane().add(button);

final Popup popup = factory.getPopup(null, frame, 200, 200);
popup.show();

Sie sind verwirrend "Pop-ups" und "Fenster".

wird ein Popup-Regel angezeigt, wenn Sie nach rechts auf ein Objekt klicken. Das Popup-Fenster wird eine Liste der Aktionen anzuzeigen, die für das Objekt ausgeführt werden können. Zum Beispiel könnte ein Textfeld „cut“ hat, „Kopieren“ und „Einfügen“. Lesen Sie den Abschnitt aus den Swing-Tutorial auf „ Bringing Up einer Das Popup-Menü “für weitere Informationen.

Ein Fenster wird verwendet in einem JFrame oder JDialog andere Swing-Komponenten angezeigt werden.

Da Sie diese Aktion von einem Menüpunkt werden Aufruf Ich glaube, Sie wahrscheinlich eine modale JDialog erstellen möchten und zeigen, kein JFrame oder Popup.

Auch wenn das Tutorial lesen, lesen Sie den Abschnitt „Verwenden von Layout-Managers“. Null-Layout ist nicht der beste Weg, um einen Dialog zu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top