繁体   English   中英

Java swing JComboBox不能参数化

[英]Java swing JComboBox can't be parametrized

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

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

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

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

查看JComboxBoxJava 1.6文档 ,类JComboxBox不是Java 1.6的泛型类。

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

要访问用户选择的值,您将必须按如下所示(LaborHelper)labourname.field.getSelectedItem()所选项目: (LaborHelper)labourname.field.getSelectedItem()

但是,由于JComboxBox成为通用类, 因此它应与Java 1.7+ JComboxBox使用。

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

看到这个链接:

JComboBox警告阻止在Eclipse中打开设计页面

好的,您已经知道为什么会遇到此错误,如何消除它呢?

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

右键单击JComboBox ,转到:

Properties > Code >

在“代码”选项卡下,您将找到Type Paramters

单击其右侧的选项菜单:

在此处输入图片说明

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

在此处输入图片说明

单击确定,仅此而已。

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

更新资料

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

即使在Java 7中,也存在一个开放的bug: JDK-7067201:泛型:BasicComboBoxRenderer

然后在Eclipse(Kepler)中似乎存在一个错误:我选择了JRE 1.6,JDK 1.6,编译器遵从级别1.6,但是在将JComboBox与type参数一起使用时,Eclipse没有显示任何错误。 很奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM