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的到来支持JComboxBoxType Parameters,之前它不支持类型参数。

看到这个链接:

JComboBox Warning preventing opening the design page in eclipse

另一答案

好的,所以你已经知道为什么你会得到这个错误。你怎么摆脱它?

注意:这是一个Netbeans解决方案

右键单击JComboBox,转到:

Properties > Code >

在Code选项卡下,您将找到Type Paramters

单击右侧的选项菜单:

enter image description here

当下一个视图打开时,只需删除文本:

enter image description here

点击确定,就是这样。

另一答案

您只能参数化泛型类型。 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 未从数据库中填充

Java Swing应用程序 JComboBox下拉框联动查询

如何在 Swing 中的 JTable 的列中添加不同的 JComboBox 项

如何将选定的 JComboBox 数据项提取到 Swing 文本字段中?

下拉框 JComboBox,