Java Standard: Grafische Oberflächen mit Swing: Top Level Container: javax swing JDialog

Aus Wikibooks

JDialog ist ein Dialog, der meistens von einem JFrame abhängt:

import javax.swing.*;

public class Dialog {

	public static void main(String[] args) {
		JFrame fenster = new JFrame("JFrame");
		fenster.setLocationRelativeTo(null);
		fenster.setSize(400, 400);
		fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JPanel panel = new JPanel();
		panel.add(new JLabel("Ihr JDialog"));

		JDialog dialog = new JDialog(fenster, "Titel", false);
		dialog.add(panel);

		dialog.setSize(300, 300);
		fenster.setVisible(true);
		dialog.setVisible(true);
	}

}


Wenn Sie möchten, dass bis der JDialog geschlossen wird, der Benutzer keine Aktionen auf dem zugehörigen JFrame durchführen kann, geben Sie im Konstruktor hinten true an:

JDialog dialog = new JDialog(fenster, "Titel", true);

Sollte diese Einstellung später geändert werden, brauchen Sie dafür die Methode setModal(boolean modal):

dialog.setModal(true); //Es können keine Aktionen auf dem JFrame durchgeführt werden
//oder
dialog.setModal(false); //Es können Aktionen auf dem JFrame durchgeführt werden