我有一个对象,让我们称之为catRancher,他有一个catHerd(ArrayList),在我的视图中我有一个列表,显示他的所有猫用一个启动showInputDialog的按钮,我想要的是一个带有大列表的组合框在这个catFarm上所有可能的猫,所以我可以选择从农场添加到他的牛群的猫。
我想要这样的事情:
allCatsArray = catFarm.getAllCats().toArray();
Cat selectedCat = JOptionPane.showInputDialog(appFrame, allCatsArray, "Which cat?", JOptionPane.QUESTION_MESSAGE);
catRancher.getCatHerd().add(selectedCat);
答案 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。