有没有办法让JOptionPane下拉菜单为所选选项输出数字?

时间:2018-11-30 03:17:33

标签: java swing joptionpane

好吧,我的措辞可能有点令人困惑,但让我解释一下。

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(“ John”)之类的事情,名字将被随机化,并且在它们前面有不同的短语,这将使这样做变得更加困难。好的,希望这是有道理的,而不仅仅是混乱的混乱。如果需要,我可以澄清一些要点。

1 个答案:

答案 0 :(得分:0)

您可以将任何组件添加到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");
}