Как использовать showInputDialog для возврата объекта из выпадающего списка? - PullRequest
0 голосов
/ 05 января 2011

У меня есть объект, давайте назовем его 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 ]

2 голосов
/ 05 января 2011

Вы хотите использовать следующий метод, который возвращает объект, а не строку.

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 голос
/ 05 января 2011

Взгляните на Java JOptionPane API из раздела «Получение пользовательского ввода из диалога».Вы правы, вы должны создать JOptionPane.showInputDialog (...), как вы уже сделали, это единственный, который возвращает объект.И не забудьте наложить возвращаемый объект на (в вашем случае) Cat.Это будет выглядеть так:

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

И не забудьте проверить «selectedCat» для NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...