# Modalen Dialog aus modalem Dialog aufrufen



## howo (15. Mrz 2006)

Hallo!

ich habe auf einem Frame einen modalen Dialog liegen. Aus diesem heraus soll ein weiterer modaler Dialog aufgerufen werden.
Bisher war der zweite Dialog nicht modal, so dass ich aber nun das Problem habe, dass dieser beim Umschalten auf ein anderes Programm in der Taskleiste verchwindet und das Programm sich nicht mehr sauber schließen lässt. 
Wie muss denn so ein Aufruf erfolgen, damit der 2. Dialog auch modal ist und nicht mehr so einfah im Hintergrund verschwindet?   

Aufruf erster Dialog:


```
public DlgSucheEingangsdatumSBRbSt(int iWert,Frame frame, String title, boolean modal)
  {
  	super(frame, title, modal);
  	initialize();
  	iUnterschied = iWert;
  }
```

in der actionPerformed() eines Buttons in diesem Dialog soll nun der 2. Dialog aufgerufen werden.

Bisher:


```
DlgAnzeigeSuchtabelle DlgSuche = 
            				new DlgAnzeigeSuchtabelle(listEingangsdatum,Headers);
            			Dimension dlgSize = DlgSuche.getSize();
            			Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            			DlgSuche.setLocation((screenSize.width - dlgSize.width) / 2,
            					(screenSize.height - dlgSize.height) / 2);
            			
            			
            			DlgSuche.setModal(true);
            			DlgSuche.setVisible(true);
```

Hier noch der Konstruktor des anderen Dialoges:


```
public DlgAnzeigeSuchtabelle(List listRb, Object[] header)
  {
    this();
    if (listRb != null && listRb.size() > 0)
    {
      getTabelleSucheName(listRb, header);
      getJPnlMain().add(TabelleSucheName, BorderLayout.CENTER);
    }
  }
```

Hat jemand eine Idee? :?:

Edit Illuvatar: Codetags :x


----------



## André Uhres (15. Mrz 2006)

http://www.java-forum.org/de/viewtopic.php?p=175274#175274

```
/*
 * DialogTest2.java
 */
package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DialogTest2 extends JFrame {
    public DialogTest2() {
        dialog1Btn = new JButton();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setTitle("Frame");
        dialog1Btn.setText("Dialog 1");
        dialog1Btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                dialog1BtnActionPerformed(evt);
            }
        });
        getContentPane().add(dialog1Btn, BorderLayout.NORTH);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300);
    }
    private void dialog1BtnActionPerformed(ActionEvent evt) {
        new Dialog1(this, "Dialog 1", true);
    }
    public static void main(String args[]) {new DialogTest2().setVisible(true);}
    private JButton dialog1Btn;
}
class Dialog1 extends JDialog{
    public Dialog1(Frame parent,  String title, boolean modal){
        super(parent, title, modal);
        JButton button = new JButton("Dialog 2");
        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                showDialog2();
            }
        });
        getContentPane().add(button, BorderLayout.NORTH);
        setSize(300,200);
        setLocationRelativeTo(parent);
        setVisible(true);
    }
    private void showDialog2(){
        new Dialog2(this, "Dialog 2", true);
    }
}
class Dialog2 extends JDialog{
    public Dialog2(Dialog parent, String title, boolean modal){
        super(parent, title, modal);
        setSize(250,150);
        setLocationRelativeTo(parent);
        setVisible(true);
    }
}
```


----------

