JAVA probleme de Key Listener qui répond pas

____22 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
 nipo -
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   Statut Membre Dernière intervention   44
 
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   Statut Membre Dernière intervention   1
 
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
nipo
 
setFocusable(true); sur ton jpanel ;-)
0