如何使用showInputDialog从下拉列表中返回一个对象?

时间:2011-01-05 19:35:37

标签: java user-interface

我有一个对象,让我们称之为catRancher,他有一个catHerd(ArrayList),在我的视图中我有一个列表,显示他的所有猫用一个启动showInputDialog的按钮,我想要的是一个带有大列表的组合框在这个catFarm上所有可能的猫,所以我可以选择从农场添加到他的牛群的猫。

我想要这样的事情:

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

catRancher.getCatHerd().add(selectedCat);

2 个答案:

答案 0 :(得分:2)

您希望使用以下方法,该方法返回一个对象,而不是String。

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 :(得分:1)

从“从对话框获取用户输入”上的“Java JOptionPane API”。 你是对的,你必须像你所做的那样创建一个JOptionPane.showInputDialog(...),这是唯一一个返回Object的人。并且不要忘记将返回的对象投射到(在您的情况下)Cat。这看起来像是:

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

不要忘记检查“selectedCat”是否为NULL。