1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
   | import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
 
public class Fenetre3 extends JFrame implements MouseListener{
  /**
     *
     */
 
    private static final long serialVersionUID = 1L;
 
    private Pananimation pan2 = new Pananimation();
 
  private JButton btnnext2 = new JButton("NEXT");
  private JPanel container2 = new JPanel();
 
  public Fenetre(){
    this.setTitle("Appli");
    this.setSize(300, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    container2.setBackground(Color.white);
    container2.setLayout(new BorderLayout());
    container2.add(pan2, BorderLayout.CENTER);
    container2.add(btnnext2, BorderLayout.SOUTH);
    this.setContentPane(container2);
    this.setVisible(true);   
    go(); 
 
    this.addMouseListener(this);
  }
 
  private void go(){ 
    //Les coordonnées de départ de notre rond
    int x = pan2.getX(), y = pan2.getY();
    //Le booléen pour savoir si l'on recule ou non sur l'axe x
    boolean backX = false;
    //Le booléen pour savoir si l'on recule ou non sur l'axe y
    boolean backY = false;
    try {
        // Pause pour simuler un traitement
        Thread.sleep(100);
    } catch (InterruptedException e) {}
 
 
    //Dans cet exemple, j'utilise une boucle while
    //Vous verrez qu'elle fonctionne très bien
    while(true){
      //Si la coordonnée x est inférieure à 1, on avance
      if(x < 1)backX = false;
      //Si la coordonnée x est supérieure à la taille du Panneau moins la taille du rond, on recule
      if(x > pan2.getWidth()-50)backX = true;
      //Idem pour l'axe y
      if(y < 1)backY = false;
      if(y > pan2.getHeight()-50)backY = true;
 
      //Si on avance, on incrémente la coordonnée
      if(!backX)
        pan2.setPosX(++x);
      //Sinon, on décrémente
      else
        pan2.setPosX(--x);
      //Idem pour l'axe Y
      if(!backY)
        pan2.setPosY(++y);
      else
        pan2.setPosY(--y);
 
      //On redessine notre Panneau
      pan2.repaint();
 
      //Comme on dit : la pause s'impose ! Ici, trois millièmes de seconde
      try {
        Thread.sleep(1);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      btnnext2.addActionListener(new ActionListener(){
 
        @Override
        public void actionPerformed(ActionEvent e) {
                dispose();
                Fenetre4 fen4 = new Fenetre4(
                        );
            }  
    });
    }
  }
 
@Override
public void mouseClicked(MouseEvent e) {
    JOptionPane.showMessageDialog(null," mouseClicked ","Information",JOptionPane.INFORMATION_MESSAGE);<br>
}
 
@Override
public void mousePressed(MouseEvent e) {
    JOptionPane.showMessageDialog(null,"mousePressed","Information",JOptionPane.INFORMATION_MESSAGE);
 
}
 
@Override
public void mouseReleased(MouseEvent e) {
    // TODO Auto-generated method stub
 
}
 
@Override
public void mouseEntered(MouseEvent e) {
    // TODO Auto-generated method stub
 
}
 
@Override
public void mouseExited(MouseEvent e) {
    // TODO Auto-generated method stub
 
} | 
Partager