Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Cambiare Font o colore per ogni elemento della JList

    Salve a tutti, ho cercato su google per questo che voglio fare, ma non ho trovato niente ( magari non usato le parole giuste, comunque mi affido a questo forum che non mi delude quasi mai.

    come si può capire dal titolo, ho bisogno in una JList di cambiare font o colore per ogni elemento, magari cè una jlist che come elementi ( rosso, giallo, verde ), e io voglio che per ogni elemento ci sia il suo colore correlato. Mi servirebbe pure per il font comunque è fattibile ?

  2. #2
    questa classe fà un check sul tipo ed in base al tipo "disegna" l'elemento:
    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package graphicComponent;
    
    import core.*;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Rectangle;
    import javax.swing.*;
    import javax.swing.border.Border;
    import javax.swing.border.EmptyBorder;
    
    /**
     *
     * @author Utente1
     */
    public class GraficaJListGenerale extends JLabel implements ListCellRenderer {
    
        private static final Border NO_FOCUS_BORDER = new EmptyBorder(1, 1, 1, 1);
        private Border insideBorder;
    
        public GraficaJListGenerale() {
            this(0, 0, 0, 0);
        }
    
        public GraficaJListGenerale(int padding) {
            this(padding, padding, padding, padding);
        }
    
        public GraficaJListGenerale(int topPadding, int rightPadding, int bottomPadding, int leftPadding) {
            insideBorder = BorderFactory.createEmptyBorder(topPadding, leftPadding, bottomPadding, rightPadding);
            setOpaque(true);
        }
    
        @Override
        public Component getListCellRendererComponent(JList list, Object value,
                int index, boolean isSelected, boolean hasFocus) {
            /*
             *
             * // Sets text and icon on 'this' JLabel. setText(tai.getText());
             * setIcon(tai.getIcon());
             *
             */
            if (value instanceof PersonaGenerica) {
                PersonaGenerica persona = (PersonaGenerica) value;
                this.setText(persona.getNome() + " " + persona.getCognome());
                this.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/pers.gif")));
            }
            if (value instanceof AssociatoFederimprese) {
                AssociatoFederimprese persona = (AssociatoFederimprese) value;
                this.setText(persona.getNomeImpresa());
                this.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/az.png")));
            }
            if (value instanceof Referente) {
                Referente persona = (Referente) value;
                this.setText(persona.getNome() + " " + persona.getCognome());
                this.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/ref.gif")));
            }
            if (value instanceof Servizio) {
                Servizio persona = (Servizio) value;
                this.setText(persona.getNome());
                this.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/serv.gif")));
            }
            if (value instanceof Scadenza) {
                Scadenza persona = (Scadenza) value;
                this.setText(persona.getNome());
                this.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/scadenza.gif")));
            }
            if (isSelected) {
                setBackground(new Color(148, 203, 227));
                setForeground(new Color(0, 0, 131));
            } else {
                if (index % 2 == 0) {
                    setBackground(UIManager.getColor("Button.disabledForeground"));
                } else {
                    setBackground(UIManager.getColor("Button.shadow"));
                }
                setForeground(Color.WHITE);
            }
    
            Border outsideBorder;
    
            if (hasFocus) {
                outsideBorder = UIManager.getBorder("List.focusCellHighlightBorder");
            } else {
                outsideBorder = NO_FOCUS_BORDER;
            }
    
            setBorder(BorderFactory.createCompoundBorder(outsideBorder, insideBorder));
            setComponentOrientation(list.getComponentOrientation());
            setEnabled(list.isEnabled());
            setFont(list.getFont());
    
            return this;
        }
    
        // The following methods are overridden to be empty for performance
        // reasons. If you want to understand better why, please read:
        //
        // http://java.sun.com/javase/6/docs/ap....html#override
        @Override
        public void validate() {
        }
    
        @Override
        public void invalidate() {
        }
    
        @Override
        public void repaint() {
        }
    
        @Override
        public void revalidate() {
        }
    
        @Override
        public void repaint(long tm, int x, int y, int width, int height) {
        }
    
        @Override
        public void repaint(Rectangle r) {
        }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.