Java swing JComboBox无法进行参数化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java swing JComboBox无法进行参数化相关的知识,希望对你有一定的参考价值。
Eclipse IDE在Jcombobox上显示错误,该错误表明JcomboBox不能被参数化,例如:如下所示的行
private final JComboBox<LaborHelper> labourname = new JComboBox<LaborHelper>();
这里我的项目执行环境是javaSE1.6
查看java 1.6 documentation for JComboxBox,类JComboxBox
不是Java 1.6的泛型类。
它将对象的数组或向量作为用户的选择,并通过调用对象的toString方法显示它们(因此,如果要自定义标签,则必须覆盖它)。
要访问用户选择的值,您必须按如下方式强制转换所选项:(LaborHelper)labourname.field.getSelectedItem()
然而,this should work with java 1.7+作为JComboxBox
成为一个普通类。
JComboBox
在Java 1.7之前不支持类型规范(参数化)。因此,您将在Java 1.6或更早版本中遇到编译错误。
- Java 7的到来支持JComboxBox
和Type Parameters
,之前它不支持类型参数。
看到这个链接:
JComboBox Warning preventing opening the design page in eclipse
好的,所以你已经知道为什么你会得到这个错误。你怎么摆脱它?
注意:这是一个Netbeans解决方案
右键单击JComboBox
,转到:
Properties > Code >
在Code选项卡下,您将找到Type Paramters
。
单击右侧的选项菜单:
当下一个视图打开时,只需删除文本:
点击确定,就是这样。
您只能参数化泛型类型。 JComboBox
没有通用版本。
更新
通用版本JComboBox<E>
在Java 7中可用。您可能需要升级Java版本。
即使在Java 7中,也有一个开放的bug:JDK-7067201 : Generics: BasicComboBoxRenderer
然后Eclipse中似乎存在一个错误(Kepler):我选择了JRE 1.6,JDK 1.6,编译器合规级别1.6,但是当使用带有类型参数的JComboBox时,Eclipse没有显示任何错误。很奇怪。
以上是关于Java swing JComboBox无法进行参数化的主要内容,如果未能解决你的问题,请参考以下文章
Java Swing 编程 JComboBox 显示不全问题。
Java Swing应用程序 JComboBox下拉框联动查询
如何在 Swing 中的 JTable 的列中添加不同的 JComboBox 项