Если утверждения и вертикальные кнопки

122
14

Я делаю файтинг, и игрок выбирает свой класс. Как я могу сказать, что если (игрок выбирает Воина), то (бла) с моим кодом?

import java.awt.GridLayout;
import javax.swing.*;

public class ButtonTest {
static JDialog dialog;
public static void main(String[] args) {
JDialog dialog = null;
JOptionPane optionPane = new JOptionPane();
optionPane.setMessage("Choose Your Class!");
optionPane.setMessageType(JOptionPane.INFORMATION_MESSAGE);

JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,1));
String[] buttonTxt = {"Warrior","Battlemage","Tank","Archer","Kitty"};
JButton[] buttons = new JButton[buttonTxt.length];
for (int i = 0; i < buttonTxt.length; i++)
{
buttons[i] = new JButton(buttonTxt[i]);
panel.add(buttons[i]);
}
optionPane.setOptionType(JOptionPane.DEFAULT_OPTION);
optionPane.add(panel);
dialog = optionPane.createDialog(null, "Icon/Text Button");
dialog.setVisible(true);

}

}

спросил(а) 2014-12-23T06:09:00+03:00 5 лет, 10 месяцев назад
1
Решение
91

Вы можете использовать событие actionperformed для всех кнопок.

    for (int i = 0; i < buttonTxt.length; i++){
buttons[i] = new JButton(buttonTxt[i]);
buttons[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
onClickButton(buttonTxt[i]);
}
});
panel.add(buttons[i]);
}

Сделайте buttonTxt конечной переменной. Затем вы можете написать свой оператор if внутри onClickButton()

private void onClickButton(String buttonText){
if(buttonText.equals("Warrior")){
//do your stuff
}
}

ответил(а) 2014-12-23T09:10:00+03:00 5 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема