JComboBox的item可不可以是图像 扩展一个DefaultListCellRenderer,重写getListCellRendererComponent()方法,其实就是在里面加一句setIcon(imageicon) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 I agree with Apocalypse(逍遥思辨).and note:JComboBox.setRender(r);//r is the render you defined copy一段代码给你import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class Test extends JApplet { public void init() { Container contentPane = getContentPane(); JComboBox combo = new JComboBox(new Object[] { new Object[] { Color.gray, "gray" }, new Object[] { Color.orange, "orange" }, new Object[] { Color.red, "red" }, new Object[] { Color.blue, "blue" }, new Object[] { Color.yellow, "yellow" }, new Object[] { Color.magenta, "magenta" }, new Object[] { Color.black, "black" }, new Object[] { Color.green, "green" }, new Object[] { Color.lightGray, "lightGray"} }); combo.setRenderer(new ColorRenderer()); contentPane.setLayout(new FlowLayout()); contentPane.add(combo); }}class ColorRenderer extends JLabel implements ListCellRenderer { private static ColorIcon icon = new ColorIcon(); private Border redBorder = BorderFactory.createLineBorder(Color.red,2), emptyBorder = BorderFactory.createEmptyBorder(2,2,2,2); public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { Object[] array = (Object[])value; icon.setColor((Color)array[0]); setIcon(icon); setText((String)array[1]); if(isSelected) setBorder(redBorder); else setBorder(emptyBorder); return this; }}class ColorIcon implements Icon { private Color color; private int w, h; public ColorIcon() { this(Color.gray, 50, 15); } public ColorIcon(Color color, int w, int h) { this.color = color; this.w = w; this.h = h; } public void paintIcon(Component c, Graphics g, int x, int y) { g.setColor(Color.black); g.drawRect(x, y, w-1, h-1); g.setColor(color); g.fillRect(x+1, y+1, w-2, h-2); } public Color getColor() { return color; } public void setColor(Color color) { this.color = color; } public int getIconWidth() { return w; } public int getIconHeight() { return h; }} 多线程问题,挂起和恢复 异常:java.sql.SQLException: General error LOG4J加载配置文件出错,请问何解?谢谢,在线等待 Java窗口 VC写的Client端无法与Java写的Server端通信 请大家看一下这个问题! 请问各位大虾JAVA有没有办法解压 .Z 的文件呀~!大家要帮帮我啊! 谁知道JB的快截键表的帮助在帮助的哪一页? radix是什么意思??? 请问大家一个有关JDK编辑的问题? 请教一个关于java线程的问题 这个正则表达式怎么写?
note:JComboBox.setRender(r);//r is the render you defined
copy一段代码给你import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;public class Test extends JApplet {
public void init() {
Container contentPane = getContentPane();
JComboBox combo = new JComboBox(new Object[] {
new Object[] { Color.gray, "gray" },
new Object[] { Color.orange, "orange" },
new Object[] { Color.red, "red" },
new Object[] { Color.blue, "blue" },
new Object[] { Color.yellow, "yellow" },
new Object[] { Color.magenta, "magenta" },
new Object[] { Color.black, "black" },
new Object[] { Color.green, "green" },
new Object[] { Color.lightGray, "lightGray"} }); combo.setRenderer(new ColorRenderer()); contentPane.setLayout(new FlowLayout());
contentPane.add(combo);
}
}
class ColorRenderer extends JLabel implements ListCellRenderer {
private static ColorIcon icon = new ColorIcon(); private Border
redBorder = BorderFactory.createLineBorder(Color.red,2),
emptyBorder = BorderFactory.createEmptyBorder(2,2,2,2); public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
Object[] array = (Object[])value; icon.setColor((Color)array[0]);
setIcon(icon);
setText((String)array[1]); if(isSelected) setBorder(redBorder);
else setBorder(emptyBorder); return this;
}
}
class ColorIcon implements Icon {
private Color color;
private int w, h; public ColorIcon() {
this(Color.gray, 50, 15);
}
public ColorIcon(Color color, int w, int h) {
this.color = color;
this.w = w;
this.h = h;
}
public void paintIcon(Component c, Graphics g, int x, int y) {
g.setColor(Color.black);
g.drawRect(x, y, w-1, h-1);
g.setColor(color);
g.fillRect(x+1, y+1, w-2, h-2);
}
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
public int getIconWidth() {
return w;
}
public int getIconHeight() {
return h;
}
}