Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1290 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] JComboBox de couleur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] JComboBox de couleur

n°963111
djok_fb
C'était mieux avant!
Posté le 26-01-2005 à 21:02:27  profilanswer
 

Je voudrais faire une combobox avec des éléments colorés inside...
 
Ca marche nickel sauf une fois qu'on a choisi un élément, l'élément choisi prend bien le nouveau texte (confère CellRenderer) mais pas les nouvelles couleurs (dans le test, j'ai écrit en dur: Color.black).
 
Sur le forum Sun, j'ai lu que le Look & Feel avait la priorité (cet enf**** passe après mon renderer).
 
J'ai aussi lu, qu'il fallait utiliser l'Editor (mais j'ai pas les bons objets ou alors je sais pas m'en servir (confère le code en commentaire dans le ActionListener)).
 
Faut-il que je fasse mon propre look & feel ou il y a une méthode simple?
 

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class JColorComboBox extends JComboBox implements ActionListener
  5. {
  6.    public Color [] colorsList;
  7.  
  8.    public JColorComboBox(Color [] cl)
  9.    {
  10.       super();
  11.       colorsList = cl;
  12.       ColorComboRenderer renderer = new ColorComboRenderer();
  13.       for (int i=0;i<cl.length;i++)
  14.       {
  15.          JLabel lbl = new JLabel("COLOR" );
  16.          lbl.setBackground(cl[i]);
  17.          lbl.setForeground(cl[i]);
  18.          this.addItem(lbl);
  19.       }
  20.       this.addActionListener(this);
  21.       this.setRenderer(renderer);
  22.    }
  23.    public class ColorComboRenderer extends DefaultListCellRenderer
  24.    {
  25.      
  26.    public class ColorComboRenderer extends DefaultListCellRenderer
  27.    {
  28.      
  29.       public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
  30.       {
  31.          ColorComboRenderer c = (ColorComboRenderer)(super.getListCellRendererComponent(list, value, index, isSelected,cellHasFocus));
  32.          if (index==-1)
  33.          {
  34.             c.setText("SELECT" );
  35.             c.setBackground( Color.BLACK );
  36.             c.setForeground( Color.BLACK );
  37.          }
  38.          else
  39.          {
  40.             c.setText("COLOR" );
  41.             c.setBackground( ((JLabel)value).getBackground() );
  42.             c.setForeground( ((JLabel)value).getBackground() );
  43.          }
  44.          return c;
  45.       }
  46.    }
  47.    public void actionPerformed(ActionEvent e)
  48.    {
  49.      
  50.       //((JLabel)this.getEditor().getEditorComponent()).setBackground(colorsList[this.getSelectedIndex()]);
  51.       //((JLabel)this.getEditor().getEditorComponent()).setForeground(colorsList[this.getSelectedIndex()]);
  52.    }
  53.  
  54. }

mood
Publicité
Posté le 26-01-2005 à 21:02:27  profilanswer
 

n°963481
djok_fb
C'était mieux avant!
Posté le 27-01-2005 à 10:47:01  profilanswer
 

:up:  
 
un petit up...

n°963525
nraynaud
lol
Posté le 27-01-2005 à 11:15:03  profilanswer
 

pourquoi n'utilises-tu pas un JColorChooser ?

n°963619
djok_fb
C'était mieux avant!
Posté le 27-01-2005 à 12:09:07  profilanswer
 

Parce que je veux quelque chose de plus simple qu'un autre popup...
Si j'arrive pas avoir cette p'tain de combo box, je ferais avec un colorchooser...

n°963622
nraynaud
lol
Posté le 27-01-2005 à 12:11:53  profilanswer
 

alors va voir le tutorial sur les javabeans, avec les PropertyEditor

n°963708
veryfree
Posté le 27-01-2005 à 13:48:35  profilanswer
 

pas besoin j'avait fait ca a l'epoque et gfive m'avait aidé
 
je suis sur qu'apres une petite recherche...
 
 
j'essaye


Message édité par veryfree le 27-01-2005 à 13:51:22
n°963711
veryfree
Posté le 27-01-2005 à 13:51:02  profilanswer
 
n°963796
djok_fb
C'était mieux avant!
Posté le 27-01-2005 à 15:34:19  profilanswer
 

hum merci, j'avais trouvé ce post par une recherche mais j'avais pas lu jusqu'au bout, chuis vraiment un boulet, désolé

n°964478
djok_fb
C'était mieux avant!
Posté le 28-01-2005 à 11:10:03  profilanswer
 

En fait, mon problème venait du fait que mon renderer dérivait le DefaultListCellRenderer et non pas un JLabel.

n°964502
nraynaud
lol
Posté le 28-01-2005 à 11:25:04  profilanswer
 

[:mlc] DefaultListCellRenderer dérive de quoi ?

mood
Publicité
Posté le 28-01-2005 à 11:25:04  profilanswer
 

n°964792
djok_fb
C'était mieux avant!
Posté le 28-01-2005 à 16:37:45  profilanswer
 

de JLabel...hum...c'est bizarre alors...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] JComboBox de couleur

 

Sujets relatifs
[Java] [LeJOS] Probleme de Listener en parallèleProgrammation java: Pour debuter Y a quoi ?
[Java][POI][HSSF] Faire des cadres simplements[java]faire fonctionner 2 tomcat different sur la meme machine
Java - Quel livre pour Licence Maths Info[JAVA] Spliter un chemin de fichier ?
[Java] optimisation boucles forEchec chargement d'Applet java
besoin d'aide pour executer du javainterface graphique en JAVA
Plus de sujets relatifs à : [Java] JComboBox de couleur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR