JComboBox 组合框条目渲染(JComboBox添加对象选项)

  如何在JComboBox中添加对象,如果直接将对象加入进去,则只会看到该对象的toString()方法输出的内容。如:

则会在组合条目中会显示为如下图所示:

 

要如何才能将对象加入到JComboBox中呢?

先来看一个eclipse中的对字体设置颜色的选择组合选项示意图:

可以看出该下拉列表中每个选项是由前面的颜色显示面板和后面的文字组成,整个选项对象实际上是一个JPanel对象。

通过查看JComboBox 的 API看到 有这个一个方法:       void       setRenderer(ListCellRenderer aRenderer)

解释其功能为:

  设置渲染器,该渲染器用于绘制列表项和从 JComboBox 字段的列表中选择的项。该渲染器在 JComboBox 不可编辑时使用。如果其可编辑,则使用编辑器呈现和编辑所选项。

默认渲染器显示字符串或图标。其他渲染器可处理图形图像和复合选项。

要显示所选项,请调用 aRenderer.getListCellRendererComponent,其中传递列表对象和索引 -1。

可以看到默认的渲染器为字符串和图标,所以我们直接加入对象时只能显示出对象的toString()方法返回的内容。

要实现正确的添加对象,就必须调用该方法,设置渲染器。

继承JListCellRenderer 实现自己的CellRenderer类:

 

自定义的下拉列表选项对象:

测试类程序:

 

效果图如下:

这样就实现了在JComboBox中添加对象的功能。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值