KeyListener und JPanel

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi,
ich versteh es nicht...

Code:
	public Engine(int breite, int hoehe, int xanzahl, int yanzahl){
		....
		this.addKeyListener(this);
		...
	}

	public void setPanel(ImagePanel panel){
		this.getContentPane().removeAll();
	    this.getContentPane().add(panel);
	    this.getContentPane().validate();
	}

class ImagePanel extends JPanel{ 
	Image image; 
    
	public ImagePanel(int nr,Image[] texture){
		this.image=texture[nr];
		this.setLayout(null);
		this.setSize(640, 480);
        setOpaque(false); 
    } 
    public void paintComponent(Graphics g){ 
    	g.drawImage(image, 0,0, this); // Erst das Bild malen 
    	super.paintComponent(g); // Dann den Rest (Buttons und andere Children) 
    }
}

Der Keylistener geht nicht mehr? Wieso das auf einmal...dachte mir vllt das er durch das "removeAll()" gelöscht wird, ist aber nicht der Fall. Es muss was mit denn Panels zu tuen haben. Aber es geht nicht :cry: [/code]
 

madboy

Top Contributor
Der KeyListener ging aber mal?
- was hast du gemacht? Falls "nix": es müsste immer noch gehen ;-)
- was ist "this" (Panel, Button, ...)?
- hat das Panel, auf dem du den Listener hast auch den Fokus und ist "fokussierbar"? (setFocusable)

Alles in allem: mehr Code bitte. Aber nicht den ganzen Code, sondern ein minimales, lauffähiges Beispiel, an dem sich das Problem nachvolliziehen lässt.
 
G

Gast

Gast
So guten Morgen ;-)

also hier mal bissel Quelltext...wird aber nicht zum kompiliren gehen.


Code:
public class IMoY {
	   public static void main(String[] args){
		   Engine fenster = new Engine(640,480,20,15);
		   IMoY_Interact run = new IMoY_Interact(fenster);
		   run.setPanel(0);
	       fenster.setVisible(true);
	   }
}


public class IMoY_Interact {
	int label=0;
	Engine fenster; 
	Player spieler;
	
	
	public IMoY_Interact(Engine fenster){
		this.fenster=fenster;
	}
	
	public void setPanel(int label){
		MakePanels mp=new MakePanels(fenster);
		switch (label) {
		case 0:fenster.setPanel(mp.make_menu());break;
		case 1:fenster.setPanel(mp.make_auswahl());break;
		case 2:fenster.setPanel(mp.make_auswahlsamu());break;
		case 3:fenster.setPanel(mp.make_auswahlgeisha());break;
		case 4:fenster.setPanel(mp.make_auswahlninja());break;
		case 100:fenster.setPanel(mp.make_spielfeld(spieler.gebiet));break;
		default:break;
		}
	}	
}

class Engine extends JFrame implements KeyListener{
	...
	
	public Engine(int breite, int hoehe, int xanzahl, int yanzahl){
		...
		this.addKeyListener(this);
		...

	}
	
	public void setPanel(ImagePanel panel){
		this.getContentPane().removeAll();
	    this.getContentPane().add(panel);
	    this.getContentPane().validate();
	}

	public void keyReleased(KeyEvent ke){
	}
	public void keyTyped(KeyEvent ke){
	}
	public void keyPressed(KeyEvent ke){
		int key = ke.getKeyCode();
		System.out.println("key");
		//if(laufen)System.out.println("key");
	}
}

public class MakePanels extends IMoY_Interact {
	ImagePanel ip;
	JButton[] blist;
	Image[] texture;
	Image[] maps;
	JTextField name=new JTextField();
	
		
	public MakePanels(Engine fenster){
		super(fenster);
		Buttonloader bl=new Buttonloader();
		this.blist=bl.loadbuttons("texture/buttons/buttons.cfg");
		Textureloader t=new Textureloader();
		texture=t.loadtexture("texture/texture.cfg");
		maps=t.loadtexture("maps/maps.cfg");
	}
	
	public ImagePanel make_menu(){
		ip= new ImagePanel(0,texture);
		blist[0].addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				setPanel(1);
				}
		});
		for(int i=0;i<4;++i)ip.add(blist[i]);
		return ip;
	}


class ImagePanel extends JPanel{ 
	Image image; 
    
	public ImagePanel(int nr,Image[] texture){
		this.image=texture[nr];
		this.setLayout(null);
		this.setSize(640, 480);
        setOpaque(false); 
    } 
    public void paintComponent(Graphics g){ 
    	g.drawImage(image, 0,0, this); // Erst das Bild malen 
    	super.paintComponent(g); // Dann den Rest (Buttons und andere Children) 
    }
}

So mal sehen ob echt das weiterhilft. Beim Quellcode ist natürlich schon viel weggelassen...ist sonnst schon parr 1000Zeilen lang ;-) Bzw fehlen euch eh die ganzen Texturen/cfg's.

Muss ich denn KeyListener aufs Panel adden? Im moment steht der aufm dem ganzen Fenster, was früher auch klappte...bis ich es mit Panels gemacht habe.
 

martinyyyy

Mitglied
das thema hier ist zwar alt.. aber ich habe genau das selbe problem.

hatte zuvor keinen button und alles hat problemlos funktioniert, hab nun aber zum starten meines spieles einen button hinzugefügt und nun funktioniert: this.addKeyListener nicht mehr, auch die auskommentierte schleife bringt keinen unterschied.

Code:
	private void jbInit() throws Exception {
		this.add(button);
		button.addActionListener(this);
	}

	public void actionPerformed(ActionEvent e) {
		starteSpiel();		
	}

	private void starteSpiel(){
		button.setVisible(false);
		this.repaint();
//		for(Component c:frame.getComponents()){
//			c.addKeyListener(this);
//		}
                this.addKeyListener(this);
	}
	public void keyReleased(KeyEvent e){...}
	public void keyPressed(KeyEvent e){...}
	public void keyTyped(KeyEvent e){...}

edit// achja. ich habe sonst keine panels, buttons etc. ich zeichne direkt auf das applet.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
C Swing KeyListener in JPanel AWT, Swing, JavaFX & SWT 2
C Swing KeyListener für JPanel funktioniert nicht AWT, Swing, JavaFX & SWT 8
D KeyListener Problem bei JPanel wechsel AWT, Swing, JavaFX & SWT 2
G JFrame,JPanel,JTextField und KeyListener AWT, Swing, JavaFX & SWT 6
? KeyListener auf JPanel AWT, Swing, JavaFX & SWT 2
C KeyListener für JPanel AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
H KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B KeyListener auf JFrame reagiert nicht AWT, Swing, JavaFX & SWT 8
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
B Swing KeyListener auf Container? AWT, Swing, JavaFX & SWT 1
T Event Handling KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 10
K KeyListener ohne JFrame AWT, Swing, JavaFX & SWT 9
C Keylistener funktioniert nicht AWT, Swing, JavaFX & SWT 1
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
A Event Handling Muss ich 'KeyListener' tasuend mal zufügen? AWT, Swing, JavaFX & SWT 7
S mit keylistener frame schliessen AWT, Swing, JavaFX & SWT 8
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 2
R KeyListener in mehreren Panels AWT, Swing, JavaFX & SWT 5
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
J JLabel Visible setzen in KeyListener AWT, Swing, JavaFX & SWT 13
X KeyListener AWT, Swing, JavaFX & SWT 0
L KeyListener für JDialog AWT, Swing, JavaFX & SWT 7
N KeyListener funktioniert nicht richitg AWT, Swing, JavaFX & SWT 4
Z SnakeGame Schlange per KeyListener bewegen! AWT, Swing, JavaFX & SWT 10
T KeyListener AWT, Swing, JavaFX & SWT 2
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9
7 KeyListener tastatur temporär blockieren AWT, Swing, JavaFX & SWT 7
7 AWT problem: KeyListener/ test im Label umändern AWT, Swing, JavaFX & SWT 4
B SWT Problem: Wie kann man für jede TableColumn einen eigenen KeyListener registrieren. AWT, Swing, JavaFX & SWT 1
U Mouse + Keylistener AWT, Swing, JavaFX & SWT 12
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
J JWindow und keylistener AWT, Swing, JavaFX & SWT 1
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
A Swing KeyEvent mit KeyListener und KeyAdapter kürzer schreiben AWT, Swing, JavaFX & SWT 7
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
C KeyListener AWT, Swing, JavaFX & SWT 5
Doopy Event Handling KeyListener funktioniert nach Restart nicht mehr AWT, Swing, JavaFX & SWT 7
S KeyListener geht nicht AWT, Swing, JavaFX & SWT 12
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
M Frage zu KeyListener bzgl. JApplet AWT, Swing, JavaFX & SWT 3
H Bild mit KeyListener verschieben AWT, Swing, JavaFX & SWT 2
C JTextField KeyListener AWT, Swing, JavaFX & SWT 6
Y KeyListener, GUI Thread, repaint AWT, Swing, JavaFX & SWT 7
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
E Swing KeyListener implementieren AWT, Swing, JavaFX & SWT 12
P KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 11
M KeyListener richtig implementieren AWT, Swing, JavaFX & SWT 3
T KeyListener AWT, Swing, JavaFX & SWT 4
R KeyListener in JWindow AWT, Swing, JavaFX & SWT 7
T BlueJ KeyListener AWT, Swing, JavaFX & SWT 7
Z KeyListener AWT, Swing, JavaFX & SWT 2
M Swing KeyListener in JTextfield AWT, Swing, JavaFX & SWT 4
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
A Keylistener reagiert nicht AWT, Swing, JavaFX & SWT 10
D Problem mit KeyListener AWT, Swing, JavaFX & SWT 2
J KeyListener um auf CTRL-Enter zu reagieren AWT, Swing, JavaFX & SWT 2
L Snake in Java KeyListener Problem AWT, Swing, JavaFX & SWT 30
B "globaler" KeyListener? AWT, Swing, JavaFX & SWT 3
B JTable TableHeader KeyListener AWT, Swing, JavaFX & SWT 4
S Swing KeyListener und JList AWT, Swing, JavaFX & SWT 2
R KeyListener funzt nicht AWT, Swing, JavaFX & SWT 2
X KeyListener AWT, Swing, JavaFX & SWT 4
P KeyListener + Animation AWT, Swing, JavaFX & SWT 2
M Fokus für KeyListener AWT, Swing, JavaFX & SWT 9
V Problem mit KeyListener im Fullscreen-Modus AWT, Swing, JavaFX & SWT 2
M AWT KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 10
C Swing KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 7
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
F Tastenabfrage (KeyListener) AWT, Swing, JavaFX & SWT 2
S Swing JTree mit KeyListener AWT, Swing, JavaFX & SWT 2
L AWT KeyListener, requestFocus und KeyBindings AWT, Swing, JavaFX & SWT 8
E JFrame akzeptiert den KeyListener nicht AWT, Swing, JavaFX & SWT 3
F Swing Problem mit KeyListener||paintComponent() in JFrame AWT, Swing, JavaFX & SWT 12
P Swing KeyListener hört nur manchmal zu AWT, Swing, JavaFX & SWT 2
Screen Focus Problem , KeyListener, TextField , Key AWT, Swing, JavaFX & SWT 4
earlgrey_tea AWT KeyListener bekommt keine Signale AWT, Swing, JavaFX & SWT 3
L Problem mit KeyListener AWT, Swing, JavaFX & SWT 3
A KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 4
D KeyListener-Problem nach dem "Gedrückthalten" einer Taste AWT, Swing, JavaFX & SWT 10
B Swing Keylistener fuer Dialog-Buttons AWT, Swing, JavaFX & SWT 2
B KeyListener Strg+s AWT, Swing, JavaFX & SWT 5
D Globaler Keylistener AWT, Swing, JavaFX & SWT 4
M problem mit keylistener/textarea AWT, Swing, JavaFX & SWT 6
M KeyListener Problem unter Firefox AWT, Swing, JavaFX & SWT 2
L AWT KeyListener, Taste gedrückt halten AWT, Swing, JavaFX & SWT 12
M Komisches Verhalten: JCombobox mit KeyListener AWT, Swing, JavaFX & SWT 13
capgeti SWT KeyListener 2 Tasten Problem AWT, Swing, JavaFX & SWT 3
R KeyListener - welcher Komponente hinzufügen AWT, Swing, JavaFX & SWT 5
Developer_X AWT KeyListener wird nicht ausgeführt! AWT, Swing, JavaFX & SWT 3
N JFrame und KeyListener AWT, Swing, JavaFX & SWT 6
M KeyListener reagiert nach Buttondruck nicht mehr AWT, Swing, JavaFX & SWT 4
A AWT Button verhindert ausführung vom Keylistener AWT, Swing, JavaFX & SWT 4
R KeyListener hinzufügen AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen


Oben