sateenb
Messages postés3Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention11 janvier 2006
-
10 janv. 2006 à 22:15
sateenb
Messages postés3Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention11 janvier 2006
-
11 janv. 2006 à 15:51
Bonjour Tous,
Je débute tout juste avec SWING.
J'essaie de mettre en place un JColorChooser afin de permettre aux utilisateurs de mon application de choisir la couleur des caractères qui s'afficheront sur leur écran.
Grâce aux précédents post sur le sujet, je réussi à afficher correctement mon JColorChooser mais je ne peux réaliser aucune action : les bouton OK et ANNULER ne sont pas activés et même lorsque je clique sur la palette rien ne se passe..
J'ai forcément dû oublier un ptit détail.. mais lequel ?
Voici la méthode qui est appelée lorsque je clique sur le bouton d'affichage du JColorChooser :
JLabel banner;
/**
* Procedure qui affiche le JColorChooser
*/
public void askColor(){
final JDialog boiteDialog = new JDialog();
boiteDialog.getContentPane().setLayout(new BorderLayout());
banner = new JLabel();
banner.setText("TEST !!!");
banner.setForeground(Color.RED);
final JColorChooser jColorChooser = new JColorChooser();
jColorChooser.setVisible(true);
//Mise dans un tableau de ses différents éléments(ses panels)
AbstractColorChooserPanel[] panel = jColorChooser.getChooserPanels();
//Enléve les autres panels(index 0 = nuancier, index1=HSB, index2 = RVB)
jColorChooser.removeChooserPanel(panel[1]);
jColorChooser.removeChooserPanel(panel[2]);
jColorChooser.getSelectionModel().addChangeListener( new ChangeListener(){
public void stateChanged(ChangeEvent evt) {
banner.setForeground(jColorChooser.getColor());
return;
}
});
JButton ok = new JButton("OK");
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
Color c = jColorChooser.getColor();
jButton9.setBackground(c);
sateenb
Messages postés3Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention11 janvier 2006 10 janv. 2006 à 23:14
Merci, effectivement il suffisait d'écrire cette ligne de code..
Ma méthode se limite maintenant a ceci :
------------------------------------------------------------------------------------
public void askColor(){
final JColorChooser jColorChooser = new JColorChooser();
jColorChooser.setVisible(true);
//Mise dans un tableau de ses différents éléments(ses panels)
AbstractColorChooserPanel[] panel = jColorChooser.getChooserPanels();
//Enléve les autres panels(index 0 = nuancier, index1=HSB, index2 = RVB)
jColorChooser.removeChooserPanel(panel[1]);
jColorChooser.removeChooserPanel(panel[2]);
c = jColorChooser.showDialog(null, "Choisir une couleur",Color.black);
Maintenant.. cela me pose des interrogations supplementaires car je me retrouve avec les 3 panneaux au lieu du nuancier seulement
En effet les lignes en orange ne font plus aucun effet!
Et.. je ne voudrais pas abuser mais comment puis-je utiliser correctement cette variable c,
pour qu'elle mette a jour mon champs uniquement lorsque je clique sur "OK" ?