Hello
Mon problème :
Je souhaite mette un JColorChooser sur un JMenuItem.
Je peux appeler la méthode, mon JColorChooser s'affiche, mais elle ne repeint pas mon panel...
Impossible de trouver la solution !!
Voici mon code :
public class Frame extends JFrame implements ActionListener {
public JMenuItem effacer, quitter, couleur;
public Frame(){
setTitle("Dessinons !");
getContentPane().add(new Dessin());
//Déclaration et instanciation du JMenuBar
JMenuBar barre = new JMenuBar();
barre.setBackground(Color.white);
//Déclaration et instanciation du JMenu
JMenu menu = new JMenu("Menu");
menu.setBackground(Color.white);
//Instancition des JMenuITem
effacer = new JMenuItem("Effacer");
quitter = new JMenuItem("Quitter");
couleur = new JMenuItem("Changer la couleur");
//Ajout des JMenuItem dans le JMenu
menu.add(effacer);
menu.add(quitter);
menu.add(couleur);
couleur.addActionListener(this);
//Ajout du JMenu dans le JMenuBar
barre.add(menu);
//Ajout du JMenuBar dans le panel
this.setJMenuBar(barre);
show();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((screenSize.width - 600)/2, (screenSize.height-600)/2);
this.setSize(600,600);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
Dessin dessin = new Dessin();
if(e.getSource().equals(couleur))
dessin.changeCouleur();
}
}
public class Dessin extends JPanel implements MouseMotionListener{
int xPrec, yPrec;
public Dessin(){
addMouseMotionListener(this);
//setBackground( JColorChooser.showDialog(
//this, "Choose Background Color", getBackground()));
}
public void mouseDragged(MouseEvent e){
Graphics g = getGraphics();
g.drawLine(xPrec, yPrec, e.getX(), e.getY());
mouseMoved(e);
}
public void mouseMoved(MouseEvent e){
xPrec = e.getX();
yPrec = e.getY();
}
public void changeCouleur(){
setBackground( JColorChooser.showDialog(
this, "Choose Background Color", getBackground()));
}
}
Merci a vous.