# Fenster unsichtbar machen



## Marco7757 (19. Feb 2010)

Ich habe ein Spiel programmiert, für langweilige Arbeitsstunden. Sollte jedoch zum Beispiel mal plötzlich der Chef auftauchen, dann sollte der das natürlich möglichst nicht mitbekommen 

Deshalb macht sich mein Fenster mit einem Druck auf die Leertaste einfach unsichtbar mit 
	
	
	
	





```
setVisible(false);
```
. Allerdings ist das wohl nicht der richtige Code, denn das Fenster schliesst sich dann, statt sich unsichtbar zu machen ... Auf jeden Fall ist es auch über Alt+Shift+Tab nicht mehr zu erreichen.
Welche anderen Möglichkeiten gibt es, ein Fenster unsichtbar zu machen, und danach auf den gleichen Knopfdruck wieder sichtbar?
Von mir aus kann es auch den Fokus verlieren, man muss es jedoch mit Alt+Shift+Tab oder sonst wie zurückholen können ...

Ist das möglich?


----------



## Oli (19. Feb 2010)

Ich nehme an du arbeitest mit einem KeyListener?

if( key = Leer)
setVisible(!this.isVisible());


----------



## The_S (19. Feb 2010)

Naja, es ist unsichtbar  . Dann kann man es auch nicht mehr sehen. Es wieder auf Knopfdruck sichtbar zu machen, würde nur über einen Globalen KeyListener funktionieren ( SoftK.de | Stefan Kiesel - JGlobalKeyListener ). Ich habe allerdings mal etwas ähnliches programmiert:

Just-My-2-Cents.de Reloaded - Windows Software

Mit diesem Programm (Hide Windows) kannst du eine Tastenkombination festlegen, mit der Fenster automatisch anhand ihres Titels unsichtbar gemacht werden. Mit einer anderen Tastenkombination werden alle Fenster wieder sichtbar gemacht.


----------



## The_S (19. Feb 2010)

Oli hat gesagt.:


> Ich nehme an du arbeitest mit einem KeyListener?
> 
> if( key = Leer)
> setVisible(!this.isVisible());



Wenn das Fenster unsichtbar ist, kann es auch nicht auf Tastendrücke reagieren


----------



## Oli (19. Feb 2010)

The_S hat gesagt.:


> Wenn das Fenster unsichtbar ist, kann es auch nicht auf Tastendrücke reagieren



Nun das halte ich für ein Gerücht!

	@Override
public void keyPressed(KeyEvent e) {
 if (e.getKeyCode() == KeyEvent.VK_SPACE)
 setVisible(!isVisible());
}

Funktioniert sowohl mit JDialog als auch mit JFrame!

Grüße Oli


----------



## The_S (19. Feb 2010)

Oli hat gesagt.:


> Nun das halte ich für ein Gerücht!
> 
> @Override
> public void keyPressed(KeyEvent e) {
> ...



Was ich wiedrum für ein Gerücht halte  . Unsichtbar machen funktioniet natürlich problemlos, aber auf nem unsichtbaren Frame kann auch kein KeyListener reagieren.


```
public class TestFrame extends JFrame implements KeyListener {

	public static void main(String[] args) {
		TestFrame tf = new TestFrame();
		tf.addKeyListener(tf);
		tf.setSize(200, 200);
		tf.setVisible(true);
	}

	public void keyPressed(KeyEvent e) {
		if (e.getKeyCode() == KeyEvent.VK_SPACE)
			setVisible(!isVisible());
	}

	public void keyReleased(KeyEvent e) {
	}

	public void keyTyped(KeyEvent e) {
	}

}
```


----------



## Oli (19. Feb 2010)

The_S hat gesagt.:


> Was ich wiedrum für ein Gerücht halte  . Unsichtbar machen funktioniet natürlich problemlos, aber auf nem unsichtbaren Frame kann auch kein KeyListener reagieren.
> 
> Jo, hast natürlich recht,
> 
> ...


----------



## The_S (19. Feb 2010)

Dann haste aber wieder zwei Fenster ...  . Muss der TO wissen, wie ers macht. Möglichkeiten kennt er jetzt ja genug.


----------



## Oli (19. Feb 2010)

Hi,

ja schon klar, aber du siehst nur den Dialog d. 

Das ist klar keine Supergeile Lösung, aber um dem Chef eins auszuwischen reichts  

Schönes Wochenende...


----------



## Marco7757 (19. Feb 2010)

Vielen Dank für die vielen Antworten. Werde es mit einem Dialog machen ...


----------

