import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class JListDemo5 {
public JListDemo5(){
String[] s = {"美國","日本","中國","英國","法國"};
JFrame jf = new JFrame();
Container contentPane = jf.getContentPane();
JList list = new JList(s);
list.setBorder(BorderFactory.createTitledBorder("你喜歡哪個國家?"));
list.setCellRenderer(new CellRenderer());
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setVisibleRowCount(3);
contentPane.add(new JScrollPane(list));
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String...args){
new JListDemo5();
}
}
//class CellRenderer to design icon on every list item
class CellRenderer extends JLabel implements ListCellRenderer{
CellRenderer(){
setOpaque(true);//設置不透明,顯示反白效果
}
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if(value!=null){
setText(value.toString());
setIcon(new ImageIcon(".\\Icons\\home.jpg"));
}
if(isSelected){
this.setBackground(list.getSelectionBackground());
this.setForeground(list.getSelectionForeground());
}
else{
this.setBackground(list.getBackground());
this.setForeground(list.getForeground());
}
return this;
}
}
摘自:深入淺出Java Swing程序設計