# Kleines Problem mit setModal()



## leeehrling (11. Januar 2010)

Hallo zusammen
Ich habe ein klitzekleines Problem mit der Function setModal() beim JDialog.
Ich habe zwei Fenster, zum einen das Hauptfenster(JFrame) und dazu dann das JDialog SubFenster.
Nun muss zuerst die Eingabe auf dem SubFenster gemacht werden, bevor das MainFenster im Code weitergeht.
Am besten geht dies mit der setModal Function hab ich mir gedacht.
Wenn ich jetzt aber setModal(true) vor set Visible setze, werden die Komponenten auf meinem Dialog nicht angezeigt.
Wenn ich es hinter dem setVisible() setzte, macht es zwar die Komponenten, das Fenster ist aber nicht modal!
Hier der Codeausschnitt:
public class GuiSelProj extends JDialog implements ActionListener{

	Model model;
	String strTarget;
	File[] elements;
	JComboBox cbElementList;

public GuiSelProj(Model myModel){
	elements= new File(GUIMain.ScriptHome+"config").listFiles();
	model = myModel;
	JPanel panel = new JPanel();
	cbElementList = new JComboBox(elements);
	JButton cmdOk = new JButton("Ok");
	JButton cmdCancel = new JButton("Cancel");
	cmdOk.addActionListener(this);
	cmdCancel.addActionListener(this);
	setTitle("Select Target");
	setSize(300,100);
	setLayout(new BorderLayout());
	cbElementList.setFocusable(false);
	cmdOk.setFocusable(false);
	cmdCancel.setFocusable(false);
	setLocation(500,300);
	setModal(true);
	setVisible(true);
	panel.add(cmdOk);
	panel.add(cmdCancel);
	add(cbElementList, BorderLayout.NORTH);
	add(panel, BorderLayout.CENTER);
}

Wenn wir schon dabei sind, könnt ihr mir vielleicht auch noch sagen, wie ich bei meinem elements Array nur die Namen der Files und nicht den ganzen Pfad kriege?
mit getName() funktioniert es nicht, da es nicht vom Typ String ist. Wenn ich es zu String mache, kann ich das listFiles() nicht mehr machen... doof, ne? ^^

Vielen Dank für eure schnelle Hilfe!


----------



## FrankBooth (15. Januar 2010)

Bitte Code-Tags oder Java-Tags verwenden!!

Das muss einen anderen Grund haben. Ich habe in meinen Dialogen immer die Reihenfolge:


```
setModal(true);
setVisible(true);
```

gehabt!


----------



## FrankBooth (15. Januar 2010)

Ach und wenn ich mich nicht irre, sollte das setVisible() die letzte Anweisung im Konstruktor sein.


----------

