import java.awt.*;
import javax.swing.*;
public class ListDemo extends JPanel {
String[] listStrings = {"Freddy", "Paul", "Peter", "Max", "Klaus"};
public ListDemo() {
super(new BorderLayout());
JList list = new JList(listStrings);
MyRenderer renderer = new MyRenderer();
list.setCellRenderer(renderer);
add(list, BorderLayout.PAGE_START);
setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
}
private static void createAndShowGUI() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JComponent newContentPane = new ListDemo();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(final String... args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
class MyRenderer extends JLabel implements ListCellRenderer {
private Font extraFont;
private final Font normalFont;
public MyRenderer() {
// setPreferredSize(new Dimension(200, 30));
// setHorizontalAlignment(CENTER);
setOpaque(true);
normalFont = getFont();
extraFont = normalFont.deriveFont(Font.ITALIC);
}
public Component getListCellRendererComponent(
final JList list,
final Object value,
final int index,
final boolean isSelected,
final boolean cellHasFocus) {
setText(value.toString());
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
if (index % 2 == 1) {
setFont(extraFont);
} else {
setFont(normalFont);
}
return this;
}
}