Java swing JComboBox无法进行参数化

问题描述 投票:0回答:7

Eclipse IDE在Jcombobox上显示错误,该错误表明JcomboBox不能被参数化,例如:如下所示的行

private final JComboBox<LaborHelper> labourname = new JComboBox<LaborHelper>();

这里我的项目执行环境是javaSE1.6

java swing generics jcombobox java-7
7个回答
4
投票

查看java 1.6 documentation for JComboxBox,类JComboxBox不是Java 1.6的泛型类。

它将对象的数组或向量作为用户的选择,并通过调用对象的toString方法显示它们(因此,如果要自定义标签,则必须覆盖它)。

要访问用户选择的值,您必须按如下方式强制转换所选项:(LaborHelper)labourname.field.getSelectedItem()

然而,this should work with java 1.7+作为JComboxBox成为一个普通类。


5
投票

JComboBox在Java 1.7之前不支持类型规范(参数化)。因此,您将在Java 1.6或更早版本中遇到编译错误。


3
投票

- Java 7的到来支持JComboxBoxType Parameters,之前它不支持类型参数。

看到这个链接:

JComboBox Warning preventing opening the design page in eclipse


3
投票

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

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

右键单击JComboBox,转到:

Properties > Code >

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

单击右侧的选项菜单:

enter image description here

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

enter image description here

点击确定,就是这样。


2
投票

您只能参数化泛型类型。 JComboBox没有通用版本。

更新

通用版本JComboBox<E>在Java 7中可用。您可能需要升级Java版本。


0
投票

即使在Java 7中,也有一个开放的bug:JDK-7067201 : Generics: BasicComboBoxRenderer


0
投票

然后Eclipse中似乎存在一个错误(Kepler):我选择了JRE 1.6,JDK 1.6,编译器合规级别1.6,但是当使用带有类型参数的JComboBox时,Eclipse没有显示任何错误。很奇怪。

© www.soinside.com 2019 - 2024. All rights reserved.