リストの元データ
private String[] data = {"Tanaka", "Tomita", "Ito"};
package com.tanakahda.apps.swing.jlist.customcell.simple_customcell;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
public class JListSample extends JFrame {
リストの元データ
private String[] data = {"Tanaka", "Tomita", "Ito"};
public static void main(String[] args) {
JListSample frame = new JListSample();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 250, 130);
frame.setVisible(true);
}
public JListSample() {
JList<String> list = new JList<String>(data);
list.setCellRenderer(new SimpleCellRenderer());
getContentPane().add(list, BorderLayout.CENTER);
}
カスタムセル
class SimpleCellRenderer implements ListCellRenderer<String> {
JLabel label;
public SimpleCellRenderer() {
label = new JLabel();
label.setOpaque(true);
}
@Override
public Component getListCellRendererComponent(
JList<? extends String> list, String value, int index,
boolean isSelected, boolean cellHasFocus) {
label.setText("Hello, Dear " + value + ".");
if (isSelected) {
label.setBackground(Color.BLUE);
label.setForeground(Color.WHITE);
} else {
label.setBackground(Color.WHITE);
label.setForeground(Color.BLACK);
}
return label;
}
}
}