2011-03-28 67 views
1

我有一个对象的组合框(两种类型; ProductGroup和Family)。我想使用一个命令来找出所选项目是什么类型的对象。将组合框对象转换回其正确的类型

我出去的肢体,并试图

if (cbFamily.getSelectedItem() instanceof ProductGroup) { 
    JOptionPane.showMessageDialog(mainWindow, "You have selected a ProductGroup") 
} 

我没有运气

注:我是新来的Java,所以我可能需要寻求进一步澄清了一些答案

回答

3

你的代码应该可以正常工作。问题将在其他地方。使用调试器,或写入“System.out.println(cbFamily.getSelectedItem()。getClass());”在你的“if”之前,确定你的组合框返回了哪个类。

+0

你是对的,类是ListData,一个自定义类,问题是因为我有一个编辑的自定义ComboBoxModel,别人写了它,并且在将数据添加到ComboBox之前将对象转换为ListData。我将不得不看看我能否避免这种情况。感谢您的帮助。 – Geoff 2011-03-28 16:19:49

+0

太好了,我懂了。我需要ListData类来执行一些所需的格式,因此我将selectedItem转换回ListData,然后执行instanceof并且它正在工作。再次感谢您的帮助。 – Geoff 2011-03-28 16:32:24

0

实现一个返回类名的toString()函数怎么样?或者使用Object.getName()。你也可以尝试重写它并制作你自己的。

相关问题