2011-03-28 44 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()。你也可以嘗試重寫它並製作你自己的。