LayoutManager Modalen JDialog ein Layout zuweisen

Mino1337

Mitglied
Hallo,

Ich möchte gern einem modalen JDialog ein CardLayout zuweisen.
Das geht auch nur zeigt er es nicht an.

Meine, noch nicht ganz fertige, Methode bekommt einen Frame und einen namen übergeben.
Der JFrame ist der spätere "parent", also der Frame der gesperrt wird durchs modal setzen, der String ist dazu da um die Methode für mehrere verschiedene Dialoge benutzen zu können.

so wie es dort steht Funktioniert es nicht, wenn ich "JDialog dialog;" jedoch zu einem frame oder window mache funktioniert es. Leider kann man diese nicht modal setzen -.- ...

Java:
JDialog dialog;

public Dialoge(JFrame f,String s) {
        if(s == "neueSammlung"){
           
            dialog = new JDialog(f);
            dialog.setTitle("Bla");
            dialog.setModalityType(ModalityType.APPLICATION_MODAL);
            dialog.setSize(new Dimension(400, 400));
            dialog.setResizable(false);
            dialog.setLocationRelativeTo(f);
            dialog.setVisible(true);
           
            dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            CardLayout layout = new CardLayout();
           
            JPanel a = new JPanel();
            JPanel b = new JPanel();
            JPanel c = new JPanel();
            JPanel d = new JPanel();
            JPanel k = new JPanel();
           
            a.setBackground(Color.red);
            b.setBackground(Color.yellow);
            c.setBackground(Color.blue);
            d.setBackground(Color.white);
           
            k.setLayout(layout);
           
            layout.addLayoutComponent(a, new String("erste"));
            layout.addLayoutComponent(b, new String("zweite"));
            layout.addLayoutComponent(c, new String("dritte"));
            layout.addLayoutComponent(d, new String("vierte"));
           
            k.add(a);
            k.add(b);
            k.add(c);
            k.add(d);
            dialog.add(k);
           
            layout.show(k, "erste");

            //textfeld = new JTextField(2);
            //a.add(textfeld);
           
        }
    }

Vielen Dank für eure Hilfe.
 

Enceladus271

Bekanntes Mitglied
Man sollte grundsätzlich eine Komponente erst sichtbar machen nachdem das Layout erstellt wurde. Dies gilt insbesondere für modale Dialoge, denn dort gilt Folgendes:

Auszug aus der Javadoc:
setVisible(true): If the dialog is not already visible, this call will not return until the dialog is hidden by calling setVisible(false) or dispose.

Der Code der nach setVisible(true) steht wird also erst ausgeführt, nachdem der Dialog wieder geschlossen wurde. Daher darfst du das setVisible erst ganz am Ende ausführen.
 

Mino1337

Mitglied
Ah, ja jetzt Funktioniert es =D ... da soll mal einer drauf kommen -.- tststs ...
ich hätte da gleich noch ne frage hinterher =] ... gibt es ne möglichkeit ...

Java:
layout.show(container a, String a);

... diese Methode mit einem JDialog objekt anstatt einem JPanel zu machen ?

Bisher muss ich rumtrixen indem ich ein JPanel in den JDialog packe und in dieses widerrum das CardLayout, anders geht es nicht -.- ...
Ich war ja der Meinung das ein JDialog ebenso ein Container wie ein JFrame ist aber Java sieht das wohl anders ...
 

Enceladus271

Bekanntes Mitglied
Eigentlich ist das Verhalten ja genau das was man bei einem modalen Dialog haben möchte: Die Ausführung im "Hintergrund" wird unterbrochen und erst wieder aufgenommen wenn der Dialog geschlossen wurde.

Zu deinem anderen Problem: Du hast Recht mit der Annahme das ein JDialog auch ein Container ist. Bei Fenstern und Dialogen gibt es allerdings verschiedene Ebenen wo Komponenten platziert werden können (https://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html). Durch Hinzufügen einer Komponente zum Dialog wird diese nicht direkt in den Dialog gelegt, sondern in die ContentPane. Versuch es also mal mit
Java:
layout.show(dialog.getContentPane(), "erste");
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Swing eigenen Modalen JDialog AWT, Swing, JavaFX & SWT 6
D Modalen JDialog anzeigen AWT, Swing, JavaFX & SWT 3
G MouseEvent Problem mit JFrame über einen modalen JDialog AWT, Swing, JavaFX & SWT 3
Z JSlider im Modalen-Fenster AWT, Swing, JavaFX & SWT 0
S Modalen JFrame AWT, Swing, JavaFX & SWT 5
S Modalen Dialog nachbauen..? AWT, Swing, JavaFX & SWT 4
Daniel_L Nachrichten/Event aus nicht-modalen Dialogen abfragen? AWT, Swing, JavaFX & SWT 4
I Wie mache ich einen modalen JPanel? AWT, Swing, JavaFX & SWT 2
H nicht modaler Dialog verdeckt modalen Dialog AWT, Swing, JavaFX & SWT 5
T actionevent an modalen dialog AWT, Swing, JavaFX & SWT 5
V Zweimal klicken um Modalen Dialog zu beenden? AWT, Swing, JavaFX & SWT 15
H Modalen Dialog aus modalem Dialog aufrufen AWT, Swing, JavaFX & SWT 1
E JDialog mit count down timer AWT, Swing, JavaFX & SWT 1
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
A ViewController (IFrame) > Jdialog > Model AWT, Swing, JavaFX & SWT 1
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
L JDialog hat manchmal keinen Inhalt AWT, Swing, JavaFX & SWT 2
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
B Eingaben im JDialog abwarten AWT, Swing, JavaFX & SWT 4
S Swing JDialog mit KeyEvent als Rückgabe AWT, Swing, JavaFX & SWT 1
O Swing JDialog öffnen und dann warten bis er geschlossen wurde AWT, Swing, JavaFX & SWT 2
stylegangsta JDialog bestimmte Zeilen kursiv AWT, Swing, JavaFX & SWT 20
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
L KeyListener für JDialog AWT, Swing, JavaFX & SWT 7
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
D Button auf geöffnetem JDialog AWT, Swing, JavaFX & SWT 5
N Definitionen JDialog AWT, Swing, JavaFX & SWT 7
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
Joew0815 JDialog repaint() funktioniert nicht wie gewünscht. AWT, Swing, JavaFX & SWT 2
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
N JDialog als Progress-Anzeige AWT, Swing, JavaFX & SWT 6
M JDialog statt JFrame AWT, Swing, JavaFX & SWT 22
I focus an ein jdialog geben AWT, Swing, JavaFX & SWT 3
3 JDialog über einem Vollbildfenster anzeigen AWT, Swing, JavaFX & SWT 5
M JDialog soll JFrame "blockieren" AWT, Swing, JavaFX & SWT 2
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
S Jframe aus JDialog starten AWT, Swing, JavaFX & SWT 4
M JDialog übergibt eingaben nicht an aufrufende klasse AWT, Swing, JavaFX & SWT 15
S Assistent im JDialog AWT, Swing, JavaFX & SWT 7
H Swing JDialog cannot be resolved as a typ AWT, Swing, JavaFX & SWT 12
C Swing JDialog "flutet" den Arbeitsspeicher AWT, Swing, JavaFX & SWT 9
S Swing Eigenen JDialog mit Rückgabewert AWT, Swing, JavaFX & SWT 3
C Swing JDialog Ladebildschirm wird nicht angezeit AWT, Swing, JavaFX & SWT 5
Jagson Mit JMenu auf jDialog zurück? Wie? AWT, Swing, JavaFX & SWT 8
A JDialog (modal) blockiert alle Fenster! AWT, Swing, JavaFX & SWT 2
Jagson Swing Von JDialog zu anderem JDialog wechseln AWT, Swing, JavaFX & SWT 2
S JDialog direkt über dem MainFrame aufpoppen lassen AWT, Swing, JavaFX & SWT 2
A Swing JDialog KeyBindings und Textfelder AWT, Swing, JavaFX & SWT 5
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
D JDialog: immer nur einer gleichzeitig AWT, Swing, JavaFX & SWT 4
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
D JDialog alwaysOnTop, aber nur innerhalb der Applikation AWT, Swing, JavaFX & SWT 3
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
S JDialog über Applet AWT, Swing, JavaFX & SWT 3
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
J Swing JDialog gleichzeitig mit JFrame anzeigen AWT, Swing, JavaFX & SWT 8
S Probleme jDialog einfügen AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
S Schrift ändern in JDialog AWT, Swing, JavaFX & SWT 3
S Problem mit JDialog AWT, Swing, JavaFX & SWT 3
D Elternfenster vom JDialog aktualisieren oder nicht ? AWT, Swing, JavaFX & SWT 7
hdi Swing Genaue Funktionsweise von modalem JDialog? AWT, Swing, JavaFX & SWT 11
U JDialog ohne Taskleiste AWT, Swing, JavaFX & SWT 7
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
X JEditorPane Größe in JDialog automatisch anpassen AWT, Swing, JavaFX & SWT 2
Ollek JDialog Koponenten neu anordnen AWT, Swing, JavaFX & SWT 3
A JDialog AWT, Swing, JavaFX & SWT 10
Dit_ SwingUtilities.invokeLater und Modaler JDialog AWT, Swing, JavaFX & SWT 11
A Frage zu JDialog AWT, Swing, JavaFX & SWT 3
A JDialog ausdrucken AWT, Swing, JavaFX & SWT 7
aze JDialog mit runden ecken AWT, Swing, JavaFX & SWT 8
Dit_ JDialog nur horizontal vergrößern AWT, Swing, JavaFX & SWT 3
C Swing JProgressBar in JDialog wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
M Swing Vererbung, Probleme mit JDialog AWT, Swing, JavaFX & SWT 12
H JDialog, Modal - Klassenübergreifend => Problem AWT, Swing, JavaFX & SWT 5
S Swing Bild (Gif) in Bitte warten JDialog AWT, Swing, JavaFX & SWT 6
U JFrame minimiert nach JDialog, JOptionPane AWT, Swing, JavaFX & SWT 3
K Swing JDialog aus Frame ausrufen AWT, Swing, JavaFX & SWT 2
B JDialog über JFileChooser anzeigen AWT, Swing, JavaFX & SWT 6
B JDialog AWT, Swing, JavaFX & SWT 6
J Swing Probmel mit JDialog (Modal/FocusLost/Button) AWT, Swing, JavaFX & SWT 5
E Swing Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?! AWT, Swing, JavaFX & SWT 5
J Swing JDialog mit static-Funktion anzeigen -> Rückgabewert AWT, Swing, JavaFX & SWT 3
E Daten von JDialog nach JFrame übertragen AWT, Swing, JavaFX & SWT 4
F ActionListener von JButton funktioniert mit JFrame aber nicht mit JDialog AWT, Swing, JavaFX & SWT 2
D Mehrere Comboboxen in JDialog AWT, Swing, JavaFX & SWT 2
F JDialog per Button schliessen - klappt nicht AWT, Swing, JavaFX & SWT 4
BattleMaster246 JDialog erscheint in der Taskbar AWT, Swing, JavaFX & SWT 7
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
J JDialog verliert Werte AWT, Swing, JavaFX & SWT 3
N Variablen an JDialog übergeben AWT, Swing, JavaFX & SWT 2
P Swing JDialog schliesst nicht AWT, Swing, JavaFX & SWT 2
X Swing JDialog von JInternalFrames überlappen lassen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben