Salut,
J'écris car j'aimerai écrire un petit programme qui échange des jpanels en fonction des clics que j'effectue dessus. J'ai déja tapé du code mais j'ai un problème a l'affichage, des jpanels disparaissent.
Mon code est peut etre pas trop compréhensible, mais en gros je créé 3 jpanels de couleurs differentes ensuite avec mon MouseListener je stoque le premier jpanel selection dans un jpanel temporaire puis lors du second clic j'échange le jpanel qui a été cliqué avec l'autre en mémoire. Voici grosso modo ce que je voudrais que ça fasse mais ça ne marche pas :/
Le code du JPanel principal :
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Panneau extends JPanel implements MouseListener {
JPanel premier;
JPanel deuxieme;
JPanel troisieme;
JPanel tmp;
JPanel tmp2;
JPanel tmp3;
public Panneau (){
tmp2= new JPanel();
premier= new
JPanel();premier.setBackground(Color.black);premie
r.addMouseListener(this);
deuxieme= new
JPanel();deuxieme.setBackground(Color.white);deuxi
eme.addMouseListener(this);
troisieme = new
JPanel();troisieme.setBackground(Color.green);troi
sieme.addMouseListener(this);
add(premier);
add(deuxieme);
add(troisieme);
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
if (tmp==null) {
tmp= (JPanel) arg0.getSource();
}
else
{tmp3=tmp;
tmp2=(JPanel) arg0.getSource();
tmp.setLocation(tmp2.getLocation());
tmp2.setLocation(tmp3.getLocation());
add(new JPanel());
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
Ps : je voudrais pas juste échanger leur couleur, mais plus leur place