# JDialog erscheint in der Taskbar



## BattleMaster246 (19. Jun 2010)

Ich habe versucht JFrames aus der Taskleiste auszublenden. Über Google fand ich nur herraus, dass man stattdessen ein JDialog verwenden soll. Das hab ich gemacht, aber es funktioniert nur, wenn ich den JDialog auf Modal stelle, dies möchte ich aber nicht, da ich mehrere JDialoge nebeneinander habe. Wie funktioniert das, ohne, dass ich den Dialog auf Modal stellen muss?


----------



## thE_29 (23. Jun 2010)

Also unter Win7 kommt hier nichts in der Taskbar:

```
javax.swing.JDialog dlg = new javax.swing.JDialog();
			dlg.setModal(false);
			dlg.setSize(300,300);
			dlg.setVisible(true);
```

Auch wenn ich dlg.setModul(true); sage, taucht nichts auf..


----------



## slawaweis (23. Jun 2010)

BattleMaster246 hat gesagt.:


> Ich habe versucht JFrames aus der Taskleiste auszublenden. Über Google fand ich nur herraus, dass man stattdessen ein JDialog verwenden soll. Das hab ich gemacht, aber es funktioniert nur, wenn ich den JDialog auf Modal stelle, dies möchte ich aber nicht, da ich mehrere JDialoge nebeneinander habe. Wie funktioniert das, ohne, dass ich den Dialog auf Modal stellen muss?


"modal" ist eine Option, die man nicht setzen muss. Wenn man keinen Parent hat, kann man einen Dialog einfach über den parameterlosen Konstruktor "new JDialog()" erstellen. Da ist es auch egal, ob es modal oder nicht ist. Wenn man einen Parent hat, muss man einfach so vorgehen: "new JDialog(parent, false)".

Slawa


----------



## BattleMaster246 (24. Jun 2010)

Komisch...


```
JDialog jd = new JDialog();
        jd.setTitle("Mapview");
        jd.setLocation(975, 10);
        jd.setSize(480,272);
        jd.setModal(true);
        jd.show();
```

= Kein Eintrag in der Taskleiste


```
JDialog jd = new JDialog();
        jd.setTitle("Mapview");
        jd.setLocation(975, 10);
        jd.setSize(480,272);
        jd.setModal(false);
        jd.show();
```

= Eintrag in der Taskleiste.


Wenn ich das mit dem setModal() weglasse, erscheint das Ganze auch in der Taskbar. ???:L


----------



## slawaweis (24. Jun 2010)

erstens, Du solltest anstatt der Zeile "jd.show();", das schreiben:


```
jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); // oder DO_NOTHING_ON_CLOSE, wenn man den Dialog noch mal braucht
jd.setVisible(true);
```

Weiterhin habe ich es ausprobiert und auf meinem Windows XP Rechner gab es in beiden Fällen keinen Eintrag in die Taskleiste.

Slawa


----------



## BattleMaster246 (24. Jun 2010)

Bei mir erscheint der Dialog immernoch in der Taskbar (Ubuntu 1.04).


----------



## BattleMaster246 (25. Jun 2010)

Ich habs, es darf nicht in der Main()-Funktion stehen.


----------



## slawaweis (25. Jun 2010)

BattleMaster246 hat gesagt.:


> Ich habs, es darf nicht in der Main()-Funktion stehen.


da darf es eigentlich keinen Unterschied geben. Ich tippe eher darauf, dass es davon abhängt, ob es im Main- oder Swing-Thread erstellt wird.

Slawa


----------

