Event / Listener problem

  • Themenstarter Gelöschtes Mitglied 5909
  • Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gelöschtes Mitglied 5909

Gast
Ich will mich so langsam auch mal an GUIs wagen und hab versucht ein kleinen "screensaver" zu schreiben.
Aber leider reagiert er nicht auf einen tastendruck, sodass sich das fenster nicht wieder schließt.
Auch mit nem KeyListener hat er es nicht geschlossen.

Hab sogar mal ein original source von javabuch.de laufen lassen,
wo ich einen teil übernommen habe, ging aber genausowenig.

Code:
package gui;

import java.awt.AWTEvent;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Window;
import java.awt.event.KeyEvent;

public class Screensaver extends Window {
	
	public static void main(String args[]) {
		Screensaver s = new Screensaver();
	}
	
	public Screensaver() {
		super(new Frame());
		setBackground(Color.BLACK);
		setVisible(true);
		setLocation(0,0);
		setSize(getToolkit().getScreenSize());
		enableEvents(AWTEvent.KEY_EVENT_MASK);
	}
	
	public void paint(Graphics g) {
		g.setColor(Color.WHITE);
		g.drawString("Aktuelle Auflösung: " + getSize().width
				+ "*" + getSize().height ,
				getSize().width / 2 - 100 ,getSize().height / 2);
		g.drawString(new java.util.Date().toString(),
				getSize().width / 2 - 104 ,getSize().height / 2 + 15);
	}

	public void processKeyEvent(KeyEvent event) {
		dispose();
		setVisible(false);
		System.exit(0);
		super.processKeyEvent(event);
	}

}

das war das beispiel aus javabuch.de
Code:
/* Listing2702.java */

import java.awt.*;
import java.awt.event.*;

public class Listing2702
extends Window
{
  public static void main(String[] args)
  {
    final Listing2702 wnd = new Listing2702();
    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 Listing2702()
  {
    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);
  }
}
 

André Uhres

Top Contributor
Code:
package gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Screensaver extends JFrame {
    public static void main(final String args[]) {
        new Screensaver().setVisible(true);
    }
    public Screensaver() {
        setUndecorated(true);
        setLocation(0,0);
        setSize(getToolkit().getScreenSize());
        SaverPanel panel = new SaverPanel();
        add(panel);
        AWTEventListener eventListener = new AWTEventListener() {
            public void eventDispatched(final AWTEvent e) {
                if(e instanceof KeyEvent && e.paramString().startsWith("KEY_PRESSED")){
                    System.exit(0);
                }
            }
        };
        Toolkit.getDefaultToolkit().addAWTEventListener(eventListener, ActionEvent.ACTION_PERFORMED);
    }
    class SaverPanel extends JPanel{
        public void paintComponent(final Graphics g) {
            super.paintComponent(g);
            g.setColor(Color.BLACK);
            g.fillRect(0,0,getSize().width, getSize().height);
            g.setColor(Color.WHITE);
            g.drawString("Aktuelle Auflösung: " + getSize().width
                    + "*" + getSize().height ,
                    getSize().width / 2 - 100 ,getSize().height / 2);
            g.drawString(new java.util.Date().toString(),
                    getSize().width / 2 - 104 ,getSize().height / 2 + 15);
            g.drawString("Bitte eine Taste drücken",10,40);
        }
    }
}
 
G

Gelöschtes Mitglied 5909

Gast
das funktioniert, danke, kannst du mir auch den grund nennen warum er bei meinem code nicht reagiert?
 
S

SlaterB

Gast
mit Frame oder JFrame statt Window/ JWindow geht deine Version..
(super-Aufruf muss dann noch bisschen geändert werden)
 
G

Gelöschtes Mitglied 5909

Gast
habs mal ausprobiert, mit Frame gehts tatsächlich, allerdings hat man dann einen rahmen ums fenster, was ich ja eigentlich nicht wollte, gehts irgendwie auch mit window?
 

André Uhres

Top Contributor
raiL hat gesagt.:
das funktioniert, danke, kannst du mir auch den grund nennen warum er bei meinem code nicht reagiert?
ein window kann gewöhnlich keinen fokus bekommen wenn kein sichtbarer parent frame da ist,
deshalb geht hier wohl nur die lösung mit undecorated frame:
Code:
setUndecorated(true);
 
G

Gast

Gast
kleine anmerkung: man kann programme einfach mit der umbenennung von *.exe zu *.scr zu screensafern unter windows machen
 
G

Gast2

Gast
Aber nicht bei Java, welches schließlich (normalerweise :D) .class bzw. .jar Dateien erzeugt. Damit geht es logischerweise nicht.
 
G

Gelöschtes Mitglied 5909

Gast
das sollte auch kein richtiger screensaver werden :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P SWT unelegant? Problem mit Listener.eventHandle(Event e) AWT, Swing, JavaFX & SWT 10
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
T Callback vs. Event listener AWT, Swing, JavaFX & SWT 7
I Event, Eventquelle und Listener selber schreiben AWT, Swing, JavaFX & SWT 9
Juelin in javafx Event auslösen AWT, Swing, JavaFX & SWT 4
G Mouse Event in anderemm Event auslösen AWT, Swing, JavaFX & SWT 50
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
J CheckBoxListCell auf click event in listView reagieren AWT, Swing, JavaFX & SWT 1
W JavaFX Etwas Tabellenartiges + Cell-Content-Changed-Event (o.ä.) AWT, Swing, JavaFX & SWT 30
O Swing Event Dispatch Thread AWT, Swing, JavaFX & SWT 1
B Swing Windowbuilder Rückgabewert im Event AWT, Swing, JavaFX & SWT 3
Z Befehl Action Event Verlassen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
Pr0m3theus Animation nach Event AWT, Swing, JavaFX & SWT 6
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
Sugan Swipe Event? AWT, Swing, JavaFX & SWT 8
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
H Event Handling JavaFx - auf Event warten AWT, Swing, JavaFX & SWT 4
G Event Handling Event Handling in eigene Klasse AWT, Swing, JavaFX & SWT 4
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
T Internes Event-handling in TextField/JTextField AWT, Swing, JavaFX & SWT 2
M Swing OnLoad-Event o. Ä. AWT, Swing, JavaFX & SWT 3
D Event Handling in Komplexen Anwendungen AWT, Swing, JavaFX & SWT 9
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
J Swing JMenuItem-Event?? AWT, Swing, JavaFX & SWT 3
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
A Mouse event und exit on close AWT, Swing, JavaFX & SWT 11
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
F Event Handling AWT, Swing, JavaFX & SWT 7
J Button Event nur einmal ausführen AWT, Swing, JavaFX & SWT 3
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
F Frage zu Event KeyTyped bei jPanel AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
T Anzahl Event Listeners AWT, Swing, JavaFX & SWT 4
A Swing JButton int im Event AWT, Swing, JavaFX & SWT 9
G Swing Onkeyup Event AWT, Swing, JavaFX & SWT 3
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
P Swing Event das ausgelöst wird, sobald Änderung der Größe Abgeschlossen ist AWT, Swing, JavaFX & SWT 4
A Shift-Tab-Event auslösen AWT, Swing, JavaFX & SWT 5
T Event Dispatch Thread und noch ein Thread AWT, Swing, JavaFX & SWT 7
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
A Probleme mit dem KeyReleased-event AWT, Swing, JavaFX & SWT 3
J Doppelklick Event AWT, Swing, JavaFX & SWT 32
jueki Event bei Änderung der Spaltenbreite in einem JTable AWT, Swing, JavaFX & SWT 15
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
N Swing JComboBox Event Problem AWT, Swing, JavaFX & SWT 5
M JTree => Event Dispatching Error AWT, Swing, JavaFX & SWT 2
D Event in Fenster ausgeben + Observer + kein Plan AWT, Swing, JavaFX & SWT 2
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
H KeyUp-Event/Ereignis AWT, Swing, JavaFX & SWT 6
C Event Frage AWT, Swing, JavaFX & SWT 7
M Swing WindowListener -> Event abbrechen? AWT, Swing, JavaFX & SWT 2
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
R JTextField - Event bei jedem Buchstaben AWT, Swing, JavaFX & SWT 2
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
M Actionlistener ohne Event -.-?! AWT, Swing, JavaFX & SWT 2
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
D PropertyChangeListener Event auswertung AWT, Swing, JavaFX & SWT 7
O FlowLayout Button Event zuweisen? AWT, Swing, JavaFX & SWT 7
J remove() components bei event von JComboBox AWT, Swing, JavaFX & SWT 2
I event AWT, Swing, JavaFX & SWT 6
G Swing JFileChooser Event für neue Directory? AWT, Swing, JavaFX & SWT 5
X Checkboxen erstellt mit MouseClicked event AWT, Swing, JavaFX & SWT 10
Dragonfire Swing One componentResized Event AWT, Swing, JavaFX & SWT 14
data89 Was mache ich mit "Dispatched Event Thread"/Substance falsch? AWT, Swing, JavaFX & SWT 4
Kr0e Event simulieren AWT, Swing, JavaFX & SWT 5
S Tastatur Event auserhalb des fokuses aufnehmen AWT, Swing, JavaFX & SWT 4
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
M Swing Event mit Button AWT, Swing, JavaFX & SWT 7
B Wie kann ich ein event wieder beseitigen AWT, Swing, JavaFX & SWT 2
R Checkboxen - Event mit Controller abfangen AWT, Swing, JavaFX & SWT 7
Spin Window Event Beispiel AWT, Swing, JavaFX & SWT 6
O Tabelle über Event sortieren AWT, Swing, JavaFX & SWT 4
Iron Monkey JTable 2 Selektionsfarben Mouse-Event AWT, Swing, JavaFX & SWT 8
Dragonfire JTree, Selection via event AWT, Swing, JavaFX & SWT 7
K JButton auf JPanel in JTable (Darstellungs-/Event-Probleme) AWT, Swing, JavaFX & SWT 16
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
E Komponenten in Event Dispatch Thread erzeugen? AWT, Swing, JavaFX & SWT 4
D Event beim Laden eines JPanels? AWT, Swing, JavaFX & SWT 3
O Action Event auslösen bei unbekanntem JTextField AWT, Swing, JavaFX & SWT 3
R Registrieren um Event abzufangen AWT, Swing, JavaFX & SWT 3
N solange Maustaste gedrückt Event AWT, Swing, JavaFX & SWT 15
Daniel_L Nachrichten/Event aus nicht-modalen Dialogen abfragen? AWT, Swing, JavaFX & SWT 4
G Event an einer JComboBox registrieren AWT, Swing, JavaFX & SWT 8
S Welches Event beim ändern einer Zelle in einer JTable AWT, Swing, JavaFX & SWT 4
S Welches Event beim auswählen einer Zelle? [JTable] AWT, Swing, JavaFX & SWT 3
A Event von Login zu Main klasse AWT, Swing, JavaFX & SWT 2
E bei gedrückte Taste --> Bitte nur ein Event auslösen AWT, Swing, JavaFX & SWT 4
W Kein MouseKlick-Event bei Bewegung AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben