java下拉菜单

importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;classtestextendsJFrame{JC... import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class test extends JFrame
{
JComboBox jcb;
String[] name={"red","green","yellow"};
Icon i1=new ImageIcon("r.png");
Icon i2=new ImageIcon("g.png");
Icon i3=new ImageIcon("y.png");
Icon[] icons={i1,i2,i3};
JPanel p;
test()
{
Container con=this.getContentPane();
con.setLayout(new BorderLayout());
p=new JPanel();
jcb=new JComboBox(name);
jcb.setMaximumRowCount(2);
jcb.setEditable(true);
jcb.setPreferredSize(new Dimension(200,30));
jcb.setRenderer(new MyCellRenderer(icons));
p.add(jcb);
con.add(p,"North");
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String[] args)
{
new test();
}
}
class MyCellRenderer extends JLabel implements ListCellRenderer
{
Icon[] icons;
MyCellRenderer(Icon[] icons)
{
this.icons=icons;
setOpaque(true);
}
public Component getListCellRendererComponent(JList list,Object value,int index,boolean isSelected,boolean cellHasFocus)
{
if((index!=-1)&&(index<icons.length))
{
setIcon(icons[index]);
}
if(isSelected)
{
setBackground(list.getBackground());
setForeground(list.getForeground());
}
else
{
setBackground(list.getBackground());
setForeground(list.getForeground());
}
return this;
}
}
问题代码如上。
问题:
程序能运行,但是为什么下拉菜单不显示图片。(图片的位置已放对)
该代码!
高手解决!
我晕。我都说了路径没问题了。。
展开
 我来答
slin_h
2009-10-17
知道答主
回答量:8
采纳率:0%
帮助的人:12万
展开全部
用类加载器来做吧。
this.getClass().getClassLoader().getResource("路径");
skingyang
2009-10-15 · TA获得超过586个赞
知道小有建树答主
回答量:767
采纳率:60%
帮助的人:325万
展开全部
图片的相对和绝对路径问题,好好看看吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式