Fire Fox II
02-07-2012, 18:08
Salve raga
come da titolo, ho creato un JComboBox e dovrei fare in modo che alcuni elementi vengano evidenziati in grassetto
Come posso cambiare il font solo per tali elementi?
Thanks
franksisca
03-07-2012, 08:30
semplicemente ridefinendo il componente:
/*
* 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/api/javax/swing/DefaultListCellRenderer.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) {
}
}
qui in base al tipo associavo una icona e colore diverso...puoi modificarlo a piacimento ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.