如何将joptionpane与combobox结合

时间:2019-05-25 04:07:18

标签: java swing combobox joptionpane

我希望我的joption可以与combobox结合使用,并且combobox数据在数据库中,这是我的管理方式。

我尝试过更改,但红色代码始终显示

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String wel = sdf.format(cal1.getDate());
            String NamaFile = "/report/harianMasuk.jasper";
            HashMap hash = new HashMap();
      String tak = JOptionPane.showOptionDialog(null,id.getSelectedIndex()-1,"Laporan Supplier",JOptionPane.QUESTION_MESSAGE);
 try {
                  hash.put("til", wel);
               hash.put("rul", tak);  
               runReportDefault(NamaFile, hash);
           } catch (Exception e) {
               JOptionPane.showMessageDialog(rootPane, e);
           }

2 个答案:

答案 0 :(得分:1)

Getting User Input From a Dialog上的Swing教程中阅读本节。

它演示了如何在JOptionPane中显示一个组合框。

答案 1 :(得分:0)

不确定是否要完成什么,但似乎是要在 JOptionPane 对话框窗口中使用JComboBox。该ComboBox将填充数据库中的特定数据。用户将从此组合框中选择,然后您的应用程序将基于该选择继续进行处理。如果是这种情况,那么您可能想要尝试这样的事情:

String selectedItem = "";
int selectedItemIndex = -1;

/* Ensure dialog never hides behind anything (use if
   the keyword 'this' can not be used or there is no 
   object to reference as parent for the dialog).   */
JFrame iframe = new JFrame();
iframe.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
iframe.setAlwaysOnTop(true);
// ---------------------------------------------------

int btns = JOptionPane.OK_CANCEL_OPTION;

String dialogMessage = "<html>Select the desired item from the Drop-Down "
        + "list<br>you want to work with:<br><br></html>";
String dialogTitle = "Your Fav Items";
/* Up to you to gather what you want placed into the
   JComboBox that will be displayed within the JOptionPane. */
String[] comboBoxItems = {"Your", "DB", "Items", "You", "Want", "To",
    "Add", "To", "ComboBox"};
BorderLayout layout = new BorderLayout();
JPanel topPanel = new JPanel(layout);
JLabel label = new JLabel(dialogMessage);
topPanel.add(label, BorderLayout.NORTH);
JPanel centerPanel = new JPanel(new BorderLayout(5, 5));
JComboBox cb = new JComboBox();
cb.setModel(new DefaultComboBoxModel<>(comboBoxItems));
cb.setSelectedIndex(-1);
centerPanel.add(cb, BorderLayout.CENTER);
topPanel.add(centerPanel);

// Ensure a selection or Cancel (or dialog close)
while (selectedItemIndex < 0) {
    int res = JOptionPane.showConfirmDialog(iframe, topPanel, dialogTitle, btns);
    if (res == 2) {
        selectedItem = "Selection Option Was Canceled!";
        break;
    }
    selectedItemIndex = cb.getSelectedIndex();
    if (res == JOptionPane.OK_OPTION) {
        if (selectedItemIndex == -1) {
            JOptionPane.showMessageDialog(iframe, "<html>You <b>must</b> "
                    + "select something or select <font color=red><b>Cancel</b></font>.",
                      "Invalid Selection...", JOptionPane.WARNING_MESSAGE);
        }
        else {
            selectedItem = cb.getSelectedItem().toString();
        }
    }
    iframe.dispose();
}
JOptionPane.showMessageDialog(iframe, "<html>You selected the ComboBox item:"
        + "<br><br><b><font color=blue><center>" + selectedItem + "</center>"
        + "</font></b><br></html>", "Selected Item", JOptionPane.INFORMATION_MESSAGE);
iframe.dispose();

使用上面的代码,将显示的“输入”对话框如下所示:

enter image description here

enter image description here

由您自行决定填充上面代码中使用的 comboBoxItems 字符串数组的方法。