codice:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MouseCombo extends JFrame {
private class MioRenderer extends JLabel implements ListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean sel, boolean focus) {
setText( value.toString() );
setOpaque( true );
setForeground(sel || focus ? Color.white : Color.black);
setBackground(sel || focus ? Color.blue.darker() : Color.white);
if ( sel ) stampa( this );
return this;
}
}
private JComboBox jcb;
private JLabel lbl;
private String[] oggetti = {"Primo nella lista", "Secondo nella lista", "Terzo nella lista", "Quarto nella lista"};
public MouseCombo() {
Container c = getContentPane();
c.setLayout( new BorderLayout() );
lbl = new JLabel("Quando il mouse si muoverà, qui comparirà l'oggetto selezionato");
jcb = new JComboBox( oggetti );
jcb.setRenderer( new MioRenderer() );
c.add(lbl, BorderLayout.NORTH);
c.add(jcb, BorderLayout.SOUTH);
setSize(200, 200);
setTitle("Prova Renderer");
setDefaultCloseOperation( EXIT_ON_CLOSE );
setVisible( true );
}
public void stampa(JLabel l) {
lbl.setText("Mouse sopra: " + l.getText());
}
public static void main(String[] args) {
MouseCombo mc = new MouseCombo();
}
}
Ciao.