Есть ли способ получить выпадающее меню JOptionPane для вывода чисел для выбранного варианта? - PullRequest
0 голосов
/ 30 ноября 2018

Хорошо, моя формулировка может быть немного запутывающей, но позвольте мне объяснить.

String[] choices = { "John", "Bob", "Jenny"};
String input = (String) JOptionPane.showInputDialog(null, "Choose who you want to trade with",
    "", JOptionPane.QUESTION_MESSAGE, null, choices,choices[1]);
    System.out.println(input);

Я получил этот код для основного выпадающего меню на каком-то Java-учебном сайте.Что происходит, так это то, что выходные данные - это просто имена, а не что-то вроде JOptionPane, которое я нашел в интернете для кнопок, где выходные данные представляют собой числа:

Object[] options = {"Clothes", "Food", "Repair equipment", "Leave the shop"};
    int Store = JOptionPane.showOptionDialog(null, "WELCOME TO THE GENERAL GOODS STORE, WHAT WOULD YOU LIKE\n                                                 you have $" + money, "Welcome",
            JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE,
            null, options, options[0]);

Это действительно очень трудно сделать, если операторы отвечают навыбор, который делает пользователь.И точно так, что никто не говорит просто делать что-то вроде input.equals («Джон»), имена будут случайными и будут иметь разные фразы перед ними, что усложнит задачу.Хорошо, надеюсь, это имело некоторый смысл и не было просто беспорядочным беспорядком.Я могу уточнить некоторые моменты, если это будет необходимо.

1 Ответ

0 голосов
/ 30 ноября 2018

Вы можете добавить любой компонент в JOptionPane, чтобы вы могли добавить JPanel, который содержит:

  1. Jlabel с сообщением
  2. JComboBox

Основной код:

JPanel panel = new JPanel( new BorderLayout() );
panel.add(new JLabel("Choose who you want to trade with"), BorderLayout.PAGE_START);
panel.add(comboBox, BorderLayout.PAGE_END);

int result = JOptionPane.showConfirmDialog(
    frame, // use your JFrame here
    panel, 
    "Use a Panel",
    JOptionPane.YES_NO_OPTION,
    JOptionPane.PLAIN_MESSAGE);

if(result == JOptionPane.YES_OPTION)
{
    int index = comboBox.getSelectedIndex();
}
else
{
    System.out.println("Canceled");
}
...