1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
import java.awt.Component;
import java.awt.EventQueue;
import java.awt.Color;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
/**
* @author bebe
*/
public class TestListCellRenderer {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame myFrame = new JFrame("Testing");
JList myList = new JList();
myList.setCellRenderer(new MyCellRenderer());
DefaultListModel model = new DefaultListModel();
for (int i = 0; i < 10; i++) {
model.add(i, i);
}
myList.setModel(model);
myFrame.setSize(400, 300);
myFrame.add(new JScrollPane(myList));
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setLocationRelativeTo(null);
myFrame.setVisible(true);
}
});
}
}
class MyCellRenderer extends JLabel implements ListCellRenderer {
public Component getListCellRendererComponent(
JList list,
Object value, // value to display
int index, // cell index
boolean isSelected, // is the cell selected
boolean cellHasFocus) // the list and the cell have the focus
{
String s = value.toString();
setText(s);
setIcon(new ImageIcon(getClass().getResource("pictures/versionControl.png"))); // changer image!!
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
if (index % 2 == 0) {
setBackground(new Color(255, 255, 225));
} else {
setBackground(list.getBackground());
}
setForeground(list.getForeground());
}
setEnabled(list.isEnabled());
setFont(list.getFont());
setOpaque(true);
return this;
}
@Override
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
}
@Override
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {
}
@Override
public void validate() {
}
@Override
public void revalidate() {
}
} |
Partager