Announcement

Collapse
No announcement yet.

keyPressed funktioniert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • keyPressed funktioniert nicht

    Hy, hier wieder der Anfänger in JAVA

    Ich bearbeite das JAVA-Buch der Autoren Guido Krüger und Thomas Stark, 6. Auflage. Verlag Addison-Wesley

    Mein Beispiel, so wie es auch im Buch steht, funktioniert nicht.
    Ich kann den Fehler nicht finden. Sobald sich das Fenster im Bildschirm aufbaut, kann ich klicken wie ich will, das Bild verschwindet nicht.

    Es soll ein Window-Fenster (kein Frame) über die ganze Bildschirmlänge aufbauen und durch einen Tastendruck wieder beenden.

    Näheres im Code

    [highlight=Java]
    /**
    *
    */
    import java.awt.*;
    import java.awt.event.*;
    /**
    * @author Alexander.Locher
    *<br>Das folgende Beispiel stellt eine sehr einfache Form eines (manuell zu aktivierenden) »Bildschirmschoners«
    *dar, der den gesamten Bildschirm dunkel schaltet und die Anmerkung »Bitte eine Taste drücken« in die linke
    *obere Ecke schreibt. <br>Zusätzlich gibt das Programm die aktuelle Auflösung des Bildschirms aus, nachdem sie
    *mit der Methode getScreenSize der Klasse Toolkit ermittelt wurde. Nach Drücken einer Taste wird das Fenster
    *geschlossen und das Programm beendet:
    *<br>FUNKTIONIERT NICHT
    */
    public class Fensterbeispiel extends Window
    {

    /**
    * @param args
    */
    public static void main(String[] args)
    {
    /* FUNKTIONIERT NICHT
    */

    final Fensterbeispiel wnd = new Fensterbeispiel();

    wnd.setLocation(new Point(0,0));
    wnd.setSize(wnd.getToolkit().getScreenSize());
    wnd.setVisible(true);
    wnd.requestFocus();
    wnd.addKeyListener(
    new KeyAdapter()
    {
    public void keyPressed(KeyEvent event)
    {
    wnd.setVisible(false);
    wnd.dispose();
    System.exit(0);
    }
    }
    );
    }

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

    public void paint(Graphics g)
    {
    g.setColor(Color.red);
    g.drawString("Bildschirmgröße ist " + getSize().width + "*" + getSize().height, 10, 20);
    g.drawString("Bitte eine Taste drücken",10,40);
    }

    }

    [/highlight]

    Vielen Dank für die Hilfe

    Gruß Lerando

    PS: Mein Ansprechpartner auf der Schulung ist nicht gerade fit in Java. Deshalb poste ich so viele Fragen. DANKE für eure Geduld

  • #2
    Ein Window kann so den Focus nicht bekommen (wer sollte hier den Focus bekommen) und damit auch kein Event auslösen
    Christian

    Comment


    • #3
      Code:
      import java.awt.event.KeyAdapter;
      import java.awt.event.KeyEvent;
      
      public class NewJFrame extends javax.swing.JFrame
      {
      public NewJFrame()
      {
      setSize(500,500);
      addKeyListener(new KeyAdapter()
      {
      @Override
      public void keyPressed(KeyEvent event)
      {
      System.exit(0);
      }
      
      });
      
      }
      
      public static void main(String args[])
      {
      java.awt.EventQueue.invokeLater(new Runnable()
      {
      public void run()
      {
      new NewJFrame().setVisible(true);
      }
      
      });
      }
      
      }
      Zuletzt editiert von Christian Marquardt; 02.09.2020, 06:43.
      Christian

      Comment


      • #4
        Vielen Dank.

        Comment

        Working...
        X