Добавление третьей кнопки в раскрывающееся меню JOptionPane - PullRequest
0 голосов
/ 05 августа 2020

Я относительно новичок в Java и пытаюсь найти способ создать окно JOption, в котором не только есть раскрывающийся список с кнопками «Ok» и «Отмена», но и добавлена ​​дополнительная кнопка. перезвонил." Пока ни одна из моих попыток не смогла добавить эту кнопку «Назад», и каждый раз, когда я запускаю код, он просто вызывает традиционное окно типа dropdown / ok / cancel. Кроме того, я также хотел бы, чтобы окно закрывалось при нажатии кнопки, но мне это тоже не удалось. Вот код, который у меня есть до сих пор, я не совсем уверен, что в нем отсутствует / не так:

public static String sampleWindow(){
    JButton jbt_ok = new JButton("OK");
    JButton jbt_back = new JButton("Back");
    JButton jbt_cancel = new JButton("Cancel");

    boolean greyOutBackButton = false;

    jbt_ok.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            System.out.println("OK was clicked");

        }
    });

    jbt_cancel.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            System.out.println("Cancel was clicked");

        }
    });

    if(greyOutBackButton)
        jbt_back.setEnabled(false);
    else

        jbt_back.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("Back was clicked");

            }
        });

    Object[] options = {jbt_ok, jbt_back, jbt_cancel};

    Object selectionObject = JOptionPane.showInputDialog(null, "message", "", JOptionPane.DEFAULT_OPTION, null, options, options[0]);

    if (selectionObject == null)
        System.exit(0);
    String selectionString = selectionObject.toString();

    System.out.println("Selection String: "+ selectionString);
    return selectionString;
}
...