Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de déclanchement d'une animation par un b

    25 juillet 2016 à 16:12:55

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel; 
    
    
    public class Fenetre extends JFrame {
      
    	 private static final ActionListener JFrame = null;
    	 
      static Panel panel = new Panel();
     public JPanel container = new JPanel();
     public JPanel pan = new JPanel();
      
      public static int objectif = 500;
      public JButton tirB = new JButton();
      
    
      
      public Fenetre (){        
        this.setTitle("Animation");
        this.setSize(800, 500);
        this.setContentPane(panel);
        
        this.setLocationRelativeTo(null);
        this.setVisible(true);
        this.setLayout(new BorderLayout());
        this.add(tirB, BorderLayout.SOUTH);
        this.add(pan);
        tirB.setSize(10, 20);
        
        tirB.addActionListener(new Tir());
        
        
      }
      class Tir implements ActionListener{
          public void actionPerformed(ActionEvent evt1){
        	  balle();
          }
      }
      private void balle(){
    	 while(true){
    	    try {
    	      Thread.sleep(2);
    	    } catch (InterruptedException e) {
    	      System.out.print("ERREUR : interrruptedExeption.Processor");;}
    	      objectif--;
    	      panel.repaint();
    	      
    	      
    	    
    	  }
    	}
    
    }

    -
    Edité par NolanProvost 25 juillet 2016 à 18:26:10

    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2016 à 16:35:02

      Hello,

      ça pose pas problème d'avoir une variable JButton qui s'appelle Tir alors que tu définis la class Tir un peu plus loin?

      As tu tenté de faire bouger la balle toute seule, sans attendre le click?

      Teste d'appeler ton repaint sur ta frame et non uniquement sur ton panel

      -
      Edité par ukusan 25 juillet 2016 à 16:39:20

      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2016 à 18:06:34

        Bonjour,

        D'abord un petit rappel sur les conventions de nommage. En Java, les noms de classe commencent par une Majuscule, les noms d'objet et de méthode par une minuscule.

        Pour ton problème

        • Tu crées un panel que tu n'utilises pas
        • Tu testes un booléen (tir) immédiatement après avoir créé le listener ligne 34. A moins que tu cliques à la vitesse de la lumière, tu n'entreras jamais dans ce if. Au lieu d'utiliser un booléen qui ne sert à rien, lance plutôt la méthode balle() directement dans l'actionListener.
        • Pourquoi des variables static ?
        • Partager sur Facebook
        • Partager sur Twitter
          25 juillet 2016 à 18:08:54

          Salut, suite à tes conseils j'ai repaint la frame et appelé mon JButton tirB mais ça n'a rien fait.

           Aurais tu d'autres solutions ?

          • Partager sur Facebook
          • Partager sur Twitter
            25 juillet 2016 à 21:50:08

            Ligne 32, tu n'as pas ajouté le bon panel.
            • Partager sur Facebook
            • Partager sur Twitter
              28 juillet 2016 à 11:59:30

              alors le quel dois je ajouter ?

              • Partager sur Facebook
              • Partager sur Twitter

              Problème de déclanchement d'une animation par un b

              × 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