JColorChooser

fafa00 Messages postés 10 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 16 mars 2005 - 28 nov. 2004 à 21:35
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 30 nov. 2004 à 08:58
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.

3 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
30 nov. 2004 à 08:58
GodConan :clown)

il faut que tu fasse le repaint() apres avoir modifier la couleur

pour que le dessin se redessine ... ;o)

++
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
30 nov. 2004 à 08:58
GodConan :clown)

il faut que tu fasse le repaint() apres avoir modifier la couleur

pour que le dessin se redessine ... ;o)

++
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
30 nov. 2004 à 08:58
GodConan :clown)

;o) sorry pour le double msg ;o) prob de connec je pense ;o)
0
Rejoignez-nous