Anzeige:
Ergebnis 1 bis 3 von 3

Thema: JWindow schliessen

  1. #1
    holzmichel
    Gast

    JWindow schliessen

    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?

    Code:
    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);
      }
    
    }

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    Zitat Zitat von holzmichel Beitrag anzeigen
    Code:
    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

  3. #3
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    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?
    Das Ziel ist das Ziel.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •