2 votes

Comment définir la couleur d'une police ?

J'ai une JList et à l'intérieur de cette liste, je veux changer la couleur de la police des mots suivants.

Quelqu'un m'a dit que je devais utiliser CellRenderer mais je ne suis pas encore familiarisé avec cela.

Maintenant, mon problème est de savoir comment je peux configurer ce moteur de rendu pour changer la couleur de la police ?

Une idée à ce sujet ?

Merci...

6voto

Thomas Points 35713

Consultez le site JavaDoc Il se peut que vous y trouviez ce dont vous avez besoin (l'exemple en haut de la page). En fait, il suffit de renvoyer un composant (comme un JLabel) avec une couleur de police configurée.

Edit : puisque vous voulez que les mots soient d'une couleur différente de leur définition, voici deux possibilités de le faire avec le moteur de rendu des cellules de la liste :

  1. Retourne un JPanel contenant 2 JLabels, l'un avec le mot et l'autre avec les définitions. Les deux étiquettes peuvent avoir des couleurs d'avant-plan différentes.
  2. JLabel prend en charge le HTML (comme d'autres composants Swing), de sorte que vous pouvez simplement définir le texte de l'étiquette en tant que <html><font color=red>your word</font> - your definitions</html> . Notez que la couleur d'avant-plan par défaut doit alors être celle des définitions, sinon vous pouvez entourer les définitions d'une balise <font> également. Jetez un coup d'œil à ce qui suit Tutoriel .

6voto

oliholz Points 5089

Pour JLabel essayer les composants :

    new DefaultListCellRenderer(){
        @Override
        public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus ) { 
            JLabel label = (JLabel)super.getListCellRendererComponent( list, value, index, isSelected, cellHasFocus );
            label.setForeground( Color.RED );
            return label;
        }  
    };

2voto

mKorbel Points 90340

Envisager ...., il serait préférable d'utiliser un JTable avec un TableColumn et sans TableHeader en tant que JList , démontrée aquí , aquí en utilisant prepareRenderer parce que Liste J comporte de nombreuses restrictions/méthodes manquantes comme Tableau JT

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X