JAVA probleme de Key Listener qui répond pas

Fermé
____22 Messages postés 98 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 13 janvier 2012 - 3 juin 2008 à 19:44
 nipo - 10 févr. 2009 à 16:41
Bonjour,

ça ne réagit pas lorsque j'appuie sur les touches
qu'est ce qu'il manque?
meci de l'aide


import javax.swing.JPanel;
import javax.swing.JApplet;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
import javax.swing.JButton;
 
public class client extends JApplet implements KeyListener{
 
	private JPanel jContentPane = null;
	private JButton left = null;
	private JButton right = null;
 
	/**
	 * This method initializes left	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getLeft() {
		if (left == null) {
			left = new JButton();
		}
		return left;
	}
 
	/**
	 * This method initializes right	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getRight() {
		if (right == null) {
			right = new JButton();
		}
		return right;
	}
 
	
	public client() {
		super();
	}
 
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	public void init() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.addKeyListener(this);
	}
 
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new FlowLayout());
			jContentPane.add(getLeft(), null);
			jContentPane.add(getRight(), null);
		}
		return jContentPane;
	}
 
	public void keyPressed(KeyEvent e) {
		System.out.println("key pressed");
		int keyCode = e.getKeyCode();
		if (keyCode == e.VK_LEFT) {
			System.out.println("left");
			/*try {
				servo.setPosition(0, servo.getPosition(0) + 4);
			} catch (PhidgetException e1) {
				e1.printStackTrace();
			}*/
			left.setSelected(true);
		}
		if (keyCode == e.VK_RIGHT) {
			System.out.println("right");
			/*try {
				servo.setPosition(0, servo.getPosition(0) - 4);
			} catch (PhidgetException e1) {
				e1.printStackTrace();
			}*/
			right.setSelected(true);
		}
	}
 
	public void keyReleased(KeyEvent e) {
		
	}
 
	public void keyTyped(KeyEvent e) {
		
	}
 
}
A voir également:

2 réponses

daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
3 juin 2008 à 21:41
inverse les code de keytyped et keypressed, il me semble que ton pb vient de là et dans ton constructeur ajoute

this.addKeyListener(this); // après super()

ou alors appel init() dans ton constructeur

voila bon courage


tchû
0
____22 Messages postés 98 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 13 janvier 2012 1
5 juin 2008 à 01:14
ok j'ai suivi le conseil

mais toujours rien, lorsque j'appuie sur le clavier rien ne se passe

public class client extends JApplet implements KeyListener{

	private JPanel jContentPane = null;
	private JButton left = null;
	private JButton right = null;
	
	private JButton getLeft() {
		if (left == null) {
			left = new JButton();
			left.setText("LEFT");
			left.setName("left");
			left.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("turn left");
				}
			});
		}
		return left;
	}

	
	private JButton getRight() {
		if (right == null) {
			right = new JButton();
			right.setText("RIGHT");
			right.setName("right");
		}
		return right;
	}

	
	public client() {
		super();
		this.addKeyListener(this);
		getJContentPane().addKeyListener(this);
	}

	
	public void init() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.addKeyListener(this);
		getJContentPane().addKeyListener(this);
	}

	
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
			gridBagConstraints1.insets = new Insets(5, 3, 169, 83);
			gridBagConstraints1.gridy = 0;
			gridBagConstraints1.gridx = 1;
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.insets = new Insets(5, 83, 169, 2);
			gridBagConstraints.gridy = 0;
			gridBagConstraints.gridx = 0;
			jContentPane = new JPanel();
			jContentPane.setLayout(new GridBagLayout());
			jContentPane.add(getLeft(), gridBagConstraints);
			jContentPane.add(getRight(), gridBagConstraints1);
		}
		return jContentPane;
	}

	public void keyPressed(KeyEvent e) {
		System.out.println("key pressed");
		int keyCode = e.getKeyCode();
		if (keyCode == e.VK_LEFT) {
			System.out.println("left");
			/*try {
				servo.setPosition(0, servo.getPosition(0) + 4);
			} catch (PhidgetException e1) {
				e1.printStackTrace();
			}*/
			left.setSelected(true);
		}
		if (keyCode == e.VK_RIGHT) {
			System.out.println("right");
			/*try {
				servo.setPosition(0, servo.getPosition(0) - 4);
			} catch (PhidgetException e1) {
				e1.printStackTrace();
			}*/
			right.setSelected(true);
		}
	}

	public void keyReleased(KeyEvent e) {
		
	}

	public void keyTyped(KeyEvent e) {
		
	}

}
0
setFocusable(true); sur ton jpanel ;-)
0