JComboBox中如何加JLabel 问题如题,我在JComboBox中加的JLabel是重画过的。不考虑重画,就在JComboBox中如何加JLabel。如有达人,不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【Vanish_z】截止到2008-07-03 17:16:50的历史汇总数据(不包括此帖):发帖的总数量:10 发帖的总分数:500 结贴的总数量:9 结贴的总分数:400 无满意结贴数:1 无满意结贴分:20 未结的帖子数:1 未结的总分数:100 结贴的百分比:90.00 % 结分的百分比:80.00 % 无满意结贴率:11.11 % 无满意结分率:5.00 % 值得尊敬 回复楼上朋友:现在不考虑效果,只需要知道如何在JComboBox中添加JLabel就行了; package test;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class ComboBoxTest extends JFrame { private JComboBox comboBox; public ComboBoxTest() { String colors[] = { "一年级", "二年级","三年级" }; comboBox = new JComboBox(colors); ComboBoxRenderer renderer = new ComboBoxRenderer(); comboBox.setRenderer(renderer); renderer.setPreferredSize(new Dimension(40, 15)); comboBox.setEditable(true); comboBox.setEditor(new ComboBoxEditorExample()); Container con = getContentPane(); JPanel panel = new JPanel(); panel.add(comboBox); con.add(panel); setSize(300, 150); setVisible(true); } public static void main(String args[]) { new ComboBoxTest(); }}class ComboBoxRenderer extends JLabel implements ListCellRenderer { public ComboBoxRenderer() { setOpaque(true); setHorizontalAlignment(CENTER); setVerticalAlignment(CENTER); } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if (value instanceof String) setText((String)value); return this; }}class ComboBoxEditorExample extends JLabel implements ComboBoxEditor { public ComboBoxEditorExample() { setOpaque(true); setHorizontalAlignment(CENTER); setVerticalAlignment(CENTER); } public void setItem(Object anObject) { if (anObject != null && anObject instanceof String) setText((String) anObject); / } public Component getEditorComponent() { return this; } public Object getItem() { return getText(); //return getBackground(); } public void selectAll() { } public void addActionListener(ActionListener e) { } public void removeActionListener(ActionListener e) { }} 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; } } 您这是干啥呢?"Label"是要笑死人吗 我也有同样的问题,在JComboBox.addItem(new JLabel(XXX));后总是只显示这个JLabel的一些信息比如地址,看不到JLabel本身 构造方法。 初学者请教一习题,请各位高手解答,谢谢! applet画图高难实现--图覆盖图的边角透明的问题.求实例.请进: 请教,一个简单问题!! 关于String的简单问题!SOS! jbuilder 9的问题 超简单:请问谁有用于javascript及java的用于判断邮件地址的正则表达式,请zt领分 中文JAVA技术网正式成为共创软件联盟成员网站 Applet的基本问题 javascript中访问applet得问题 关于接口和抽象类的一道编程题 急 字符串处理问题,如何从java String的两端截取固定长度的字符串,只留下中间一段
楼主【Vanish_z】截止到2008-07-03 17:16:50的历史汇总数据(不包括此帖):
发帖的总数量:10 发帖的总分数:500
结贴的总数量:9 结贴的总分数:400
无满意结贴数:1 无满意结贴分:20
未结的帖子数:1 未结的总分数:100
结贴的百分比:90.00 % 结分的百分比:80.00 %
无满意结贴率:11.11 % 无满意结分率:5.00 %
值得尊敬
import javax.swing.*;
import java.awt.event.*;public class ComboBoxTest extends JFrame {
private JComboBox comboBox; public ComboBoxTest() {
String colors[] = { "一年级", "二年级","三年级" };
comboBox = new JComboBox(colors); ComboBoxRenderer renderer = new ComboBoxRenderer();
comboBox.setRenderer(renderer);
renderer.setPreferredSize(new Dimension(40, 15));
comboBox.setEditable(true);
comboBox.setEditor(new ComboBoxEditorExample()); Container con = getContentPane();
JPanel panel = new JPanel();
panel.add(comboBox);
con.add(panel);
setSize(300, 150);
setVisible(true);
} public static void main(String args[]) {
new ComboBoxTest();
}
}class ComboBoxRenderer extends JLabel implements ListCellRenderer {
public ComboBoxRenderer() {
setOpaque(true);
setHorizontalAlignment(CENTER);
setVerticalAlignment(CENTER);
} public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if (value instanceof String)
setText((String)value);
return this;
}
}class ComboBoxEditorExample extends JLabel implements ComboBoxEditor {
public ComboBoxEditorExample() {
setOpaque(true);
setHorizontalAlignment(CENTER);
setVerticalAlignment(CENTER);
} public void setItem(Object anObject) {
if (anObject != null && anObject instanceof String)
setText((String) anObject);
/
} public Component getEditorComponent() {
return this;
} public Object getItem() {
return getText();
//return getBackground();
} public void selectAll() {
} public void addActionListener(ActionListener e) {
} public void removeActionListener(ActionListener e) {
}
}
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;
}
}