как использовать параметры из showMessageDialog, чтобы делать вещи?

1

Я делаю игру на Java, и я делаю меню выбора персонажа. В этом меню у меня есть символы, и если пользователь нажимает на определенный символ, появляется JOptionPane.showMessageDialog, показывает статистику персонажа. Таким образом, мой вопрос заключается в том, что человек нажимает "ok", который автоматически создается при использовании функции, как я могу ее выбрать, чтобы выбрать символ?

JButton chuck = new JButton(new ImageIcon("8bitChuckNorris.jpg"));//this part of program runs this if user picks lizard
chuck.setSize(210,175); //sets size of button
chuck.setLocation(300,317); //sets location of button
chuck.addActionListener(new ActionListener() {
    public void actionPerformed (ActionEvent e) {    
        JOptionPane.showMessageDialog(null, "\t\tSTATS\nAttack\ndefence\nspecial");
    }
});
  • 0
    Иметь метод, который метод actionPerformed может вызвать после того, как JOptionPane может вызвать
  • 0
    Добро пожаловать в переполнение стека! Не используйте null макеты. Макеты Pixel Perfect - это иллюзия в современном дизайне пользовательского интерфейса, у вас нет контроля над шрифтами, DPI, конвейерами рендеринга или другими факторами, которые изменят способ визуализации компонентов на экране. Swing был разработан для работы с менеджерами верстки для преодоления этих проблем. Если вы настаиваете на игнорировании этих функций и работаете против дизайна API, будьте готовы к многочисленным головным болям и никогда не прекращайте тяжелую работу ...
Показать ещё 4 комментария
Теги:
jbutton
joptionpane

1 ответ

0

Простейший метод, вероятно, заключается в том, чтобы предоставить метод, который может вызвать ActionListener после закрытия панели параметров, например...

chuck.addActionListener(new ActionListener() {
    public void actionPerformed (ActionEvent e) {    
        JOptionPane.showMessageDialog(null, "\t\t                  STATS\nAttack\ndefence\nspecial");
        characterSelected("chuck"); // Pass whatever you need to identify the character
    }
});

обновленный

Было бы проще использовать JOptionPane.showConfirmDialog поскольку он фактически вернет результат int представляющий опцию, которую пользователь выбрал (или -1, если они отклонили диалог, не выбрав ничего)

 switch (JOptionPane.showConfirmDialog(null, "\t\t                  STATS\nAttack\ndefence\nspecial", "Character", JOptionPane.OK_CANCEL_OPTION)) {
     case JOptionPane.OK:
         // Process selection...
         break;
 }
  • 0
    Я думаю, что вы неверно истолковали мой вопрос. Вы знаете, как JOptionPane.showMessageDialog создает всплывающее окно и в этом всплывающем окне создает кнопку «ОК» и кнопку «Закрыть» в правом верхнем углу. Я хочу использовать это нормально, как выбранный персонаж
  • 0
    Проще использовать что-то вроде JOptionPane@showConfirmDialog

Ещё вопросы

Сообщество Overcoder
Наверх
Меню