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
Code:
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 ...
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:
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.
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.
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,
aber das ist ja auch ne Lösung:
Code:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class TestFrame extends JFrame implements KeyListener {
private JFrame tf;
private JDialog d;
public static void main(String[] args) {
new TestFrame();
}
public TestFrame() {
tf = new JFrame();
tf.setSize(0, 0);
tf.setUndecorated(true);
tf.setVisible(true);
tf.addKeyListener(this);
d = new JDialog();
d.setSize(200, 200);
d.setVisible(true);
d.addKeyListener(this);
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE)
d.setVisible(!d.isVisible());
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}