2011-01-05 10 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 selectedCat = (Cat) JOptionPane.showInputDialog(appFrame, allCatsArray, "Which cat?", JOptionPane.QUESTION_MESSAGE); 

そして、 "selectedCat"をNULLにチェックすることを忘れないでください。

関連する問題