这是我弄出来的在JComobbox中加入图片和文字,但是我不知道怎么才能达到像QQ2009中的那种效果.请大家多指教...
import javax.swing.*;
import java.awt.*;public class Combobox_image extends JFrame {
JComboBox comb = new JComboBox();
public Combobox_image() {
for(int i=0;i<5;i++){
LabelCellRender label = new LabelCellRender();
label.setIcon(new ImageIcon("image/3.jpg"));
comb.setRenderer(label); comb.addItem("label"+i);
}
JPanel p=new JPanel();
p.add(comb);
add(p);
setSize(300, 200);
setLocation(300,300);
setVisible(true);
} public static void main(String[] args) {
Combobox_image t=new Combobox_image();
}}
class LabelCellRender extends JLabel implements ListCellRenderer {
public LabelCellRender() {
this.setOpaque(true);
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if(value!=null)
{
setText(value.toString());
setBackground(isSelected ? Color.darkGray: Color.white);
setForeground(isSelected ? Color.white : Color.black);
}
return this;
}
}
import javax.swing.*;
import java.awt.*;public class Combobox_image extends JFrame {
JComboBox comb = new JComboBox();
public Combobox_image() {
for(int i=0;i<5;i++){
LabelCellRender label = new LabelCellRender();
label.setIcon(new ImageIcon("image/3.jpg"));
comb.setRenderer(label); comb.addItem("label"+i);
}
JPanel p=new JPanel();
p.add(comb);
add(p);
setSize(300, 200);
setLocation(300,300);
setVisible(true);
} public static void main(String[] args) {
Combobox_image t=new Combobox_image();
}}
class LabelCellRender extends JLabel implements ListCellRenderer {
public LabelCellRender() {
this.setOpaque(true);
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if(value!=null)
{
setText(value.toString());
setBackground(isSelected ? Color.darkGray: Color.white);
setForeground(isSelected ? Color.white : Color.black);
}
return this;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货