Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème JButton et KeyListener

Sujet résolu
    20 janvier 2018 à 8:58:40

    Bonjour à tous amis 0,

    Comme l'indique le titre j'ai un problème entre un JButton et les KeyListeners.

    J'ai eu ce problème dans de nombreux projets alors pour vérifier que je n'avais pas la berlue :D j'ai fait une fenêtre avec juste un JButton.

    Au début le JButton est mis sur visible = false donc il n’apparaît pas : le paramètre est mis à true quand on appuie sur une touche. Jusqu'à là tout marche normalement mais quand je clique sur le bouton Plus rien Plus de KeyEvent ! 

    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    public class Fenetre extends JFrame implements KeyListener{
    	private JButton button = new JButton("Clique !");
    	public static void main(String[] args) {
    	    new Fenetre ();	
    	}
    	public Fenetre () {
    		this.setSize(500,500);
    	
    		button.addActionListener((ActionListener)->{
    			System.out.println("Tu as cliqué");
    		});
    		button.setVisible(false);
    		this.addKeyListener(this);
    		this.add(button);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
    	}
    	@Override
    	public void keyPressed(KeyEvent arg0) {
    		System.out.println("Ca marche");
    		button.setVisible(true);
    		
    	}
    	@Override
    	public void keyReleased(KeyEvent arg0) {
    		// TODO Auto-generated method stub
    		
    	}
    	@Override
    	public void keyTyped(KeyEvent arg0) {
    		// TODO Auto-generated method stub
    		
    	}
    
    }
    

    Comme vous pouvez le voir dans le code rien de plus simple

    Alors pourquoi quand je clique sur un bouton les KeyEvents sont interceptés ?????

    Merci d'avance de m'être sous lumière ce problème insoluble

    -
    Edité par Sacul360 20 janvier 2018 à 9:03:06

    • Partager sur Facebook
    • Partager sur Twitter
    "Il y a 2 choses infinies : la bêtise humaine et l'univers. Pour ce qui est de l'univers je ne suis pas sûr" Albert Einstein
      28 janvier 2018 à 9:14:16

      Up :euh:

      • Partager sur Facebook
      • Partager sur Twitter
      "Il y a 2 choses infinies : la bêtise humaine et l'univers. Pour ce qui est de l'univers je ne suis pas sûr" Albert Einstein
      Anonyme
        29 janvier 2018 à 23:38:35

        Hum... Ça ressemble à un problème de focus... Essaye d'ajouter cette ligne dans ton constructeur :

        button.setFocusable(false) ;

        • Partager sur Facebook
        • Partager sur Twitter
          31 janvier 2018 à 9:26:58

          PitchPitch a écrit:

          Hum... Ça ressemble à un problème de focus... Essaye d'ajouter cette ligne dans ton constructeur :

          button.setFocusable(false) ;


          La solution trouvé tu as 

          Merci effectivement c'était un problème de focus

          • Partager sur Facebook
          • Partager sur Twitter
          "Il y a 2 choses infinies : la bêtise humaine et l'univers. Pour ce qui est de l'univers je ne suis pas sûr" Albert Einstein

          Problème JButton et KeyListener

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown