KeyListener bei Window funktioniert nicht

vaporizer

Erfahrenes Mitglied
HAllo zusammen

ich hab ein kleines Problem:
also ich hab da ein Window,
und möchte dessen Eigenschaft(Farbe) mit Tastaturknöpfe verändern
nur leider reagiert das Fenster nicht auf meine Tastatur
Woran liegt das?
hoffe es kann mir jemand weiterhelfen
hier der Code:

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

public class FrameTest
extends Window
{
public FrameTest()
{
super(new Frame());
setBackground(Color.yellow);
setSize(500,500);
setLocation(200,100);
setVisible(true);
addKeyListener
(
new KeyAdapter()
{
public void keyPressed(KeyEvent event)
{
switch(event.getKeyCode())
{
case KeyEvent.VK_ESCAPE : setVisible(false);dispose();System.exit(0);break;
case KeyEvent.VK_G : setBackground(Color.green);break;
case KeyEvent.VK_Y : setBackground(Color.yellow);break;
case KeyEvent.VK_B : setBackground(Color.blue); break;
case KeyEvent.VK_R : setBackground(Color.red); break;
}
}
}
);
}
public static void main(String[] args)
{
FrameTest wnd = new FrameTest();
}
public void paint(Graphics g)
{
g.setColor(Color.green);
g.setFont(new Font("Serif",Font.PLAIN,18));
g.drawString("Zum Beenden bitte ESC drücken",10,50);
}
}
wenn ich "extend Frame" nehme statt "extend Window",
dann funktiniert es, will aber ein Window

Schöne Grüße von Vaporizer
 
Hallo!

Bei einem Window sind die Notwendigen Routinen um Events abzufangen nicht vollständig implementiert....

Nimm statt dessen einen JFrame und rufe im Konstruktor setUndecorated(true) auf.

Gruß Tom
 
also wenn ich JFrame statt Window schreibe, dann:
JFrame cannnot be resolved or is not a valid superclass
wie genau mach ich das mit dem JFrame?
ich bin Java Anfänger mußt du wissen
 
Hallo!

Code:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class FrameTest extends JFrame {
	public FrameTest() {
		super();
		setUndecorated(true);
		setBackground(Color.yellow);
		setSize(500, 500);
		setLocation(200, 100);
		setVisible(true);
		addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent event) {
				switch (event.getKeyCode()) {
					case KeyEvent.VK_ESCAPE :
						setVisible(false);
						dispose();
						System.exit(0);
						break;
					case KeyEvent.VK_G :
						setBackground(Color.green);
						break;
					case KeyEvent.VK_Y :
						setBackground(Color.yellow);
						break;
					case KeyEvent.VK_B :
						setBackground(Color.blue);
						break;
					case KeyEvent.VK_R :
						setBackground(Color.red);
						break;
				}
			}
		});
	}
	public static void main(String[] args) {
		FrameTest wnd = new FrameTest();
	}
	public void paint(Graphics g) {
		g.setColor(Color.green);
		g.setFont(new Font("Serif", Font.PLAIN, 18));
		g.drawString("Zum Beenden bitte ESC drücken", 10, 50);
	}
}

Gruß Tom
 

Neue Beiträge

Zurück