Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : JWindow schliessen



holzmichel
17-06-2007, 09:59
Hallo zusammen,

es wäre super wenn ihr mir helfen könntet. Warum wird das JWindow nicht geschlossen wenn man eine Taste drückt. Irgendwie scheint es auch nicht so richtig den Fokus zu besitzen? Was mache ich flasch, bzw. was muss ich genau ändern?


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class startbs extends JWindow
{
public static void main(String[] args)
{
final startbs fnt = new startbs();
fnt.setSize(fnt.getToolkit().getScreenSize());
fnt.setVisible(true);
fnt.requestFocus();
fnt.setFocusable(true);

Component cp = fnt.getContentPane();
cp.setFocusable(true);
cp.requestFocusInWindow();
cp.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent event)
{
fnt.setVisible(false);
fnt.dispose();
System.exit(0);
}
}
);
}

public startbs()
{
super(new Frame());
setBackground(Color.black);
}

}

quinte17
17-06-2007, 18:53
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class startbs extends JWindow
{
public static void main(String[] args)
{
// schonmal ohne final versucht?
final startbs fnt = new startbs();
fnt.setSize(fnt.getToolkit().getScreenSize());
fnt.setVisible(true);
fnt.requestFocus();
fnt.setFocusable(true);

Component cp = fnt.getContentPane();
cp.setFocusable(true);
cp.requestFocusInWindow();
// vielleicht mal einen MouseListener oder WindowListener probiert?
cp.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent event)
{
fnt.setVisible(false);
fnt.dispose();
System.exit(0);
}
}
);
}

public startbs()
{
super(new Frame());
setBackground(Color.black);
}

}

hab ein paar kommentare rein...
greetz

mwanaheri
18-06-2007, 12:06
Zum Focus:
Die Zeilen 12 und 13 sind in dieser Reihenfolge nicht sinnvoll. Wenn das Fenster nicht focussierbar ist, kann es auch keinen Focus erhalten. Wenn es focussierbar ist, bringt setFocusable(true) gar nichts. Die umgekehrte Reihenfolge bringt eher was. Der Focus bestimmt, wohin die Tastendrücke gehen. Kriegt der ContentPane den Focus?