2011-01-05 72 views
0

我有一個對象,我們把它稱爲catRancher,他有一個catHerd(ArrayList),在我看來,我有一個列表,顯示他所有的貓用啓動showInputDialog的按鈕,我想要的是一個組合框這個貓場的所有可能的貓,以便我可以選擇從農場添加到他的牧羣的貓。如何使用showInputDialog從下拉列表中返回對象?

我想是這樣的:

allCatsArray = catFarm.getAllCats().toArray(); 
Cat selectedCat = JOptionPane.showInputDialog(appFrame, allCatsArray, "Which cat?", JOptionPane.QUESTION_MESSAGE); 

catRancher.getCatHerd().add(selectedCat); 

回答

2

你想使用下面的方法,該方法返回一個對象,而不是字符串。

public static Object showInputDialog(Component parentComponent, 
            Object message, 
            String title, 
            int messageType, 
            Icon icon, 
            Object[] selectionValues, 
            Object initialSelectionValue) 
           throws HeadlessException 

所以,你的代碼可能看起來像

Cat selectedCat = (Cat)JOptionPane.showInputDialog(appFrame, "title", JOptionPane.QUESTION_MESSAGE, null, allCatsArray, null); 
1

已就「從對話框獲取用戶輸入」看看Java的JOptionPane API。 你是對的,你必須創建一個JOptionPane.showInputDialog(...)像你所做的一樣,這是唯一返回一個Object的東西。並且不要忘記將返回的物體投射到(在你的情況下)Cat。這看起來像:

Cat selectedCat = (Cat) JOptionPane.showInputDialog(appFrame, allCatsArray, "Which cat?", JOptionPane.QUESTION_MESSAGE); 

並且不要忘記檢查「selectedCat」爲NULL。