【发布时间】:2018-03-08 17:03:32
【问题描述】:
我正在制作一个游戏,其中提出问题,玩家通过选择四个按钮之一来回答问题。我有两个类,一个是“QuestionsAndButtons”,另一个是“Main”。我想从“QuestionsAndButtons”类中的字符串数组列表中获取一个元素,并将其显示到“Main”类中的 JButton 上。
单击“generalknowledge”按钮时,我想将arraylist 项设置为JButton 'option1'。
主类:
generalKnowledge.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Categories1.setVisible(false);
GeneralKnowledge1.setVisible(true);
String q = quest.getAQuestion(0);
question1.setText(q);
String b1 = quest.getButtons(0);
option1.setText(b1);
}
});
QuestionsAndButtons 类:
private ArrayList<String> buttonsGK1;
public QuestionsAndButtons(){
questionsGeneralKnowledge=new ArrayList<>();
buttonsGK1=new ArrayList<>();
buttonsGK1.add("Eeyore");
buttonsGK1.add("Tigger");
buttonsGK1.add("Piglet");
buttonsGK1.add("Rabbit");
}
public String getButtons(int j) {
return buttonsGK1.get(j);
}
此外,每次我运行我的代码时,只要单击“通用知识”按钮,就会出现此错误:
线程“AWT-EventQueue-0”java.lang.IndexOutOfBoundsException 中的异常:索引 0 超出长度 0
【问题讨论】:
-
您要做的是有 4 个选项,每个选项都显示在自己的
JButton中,对吗? -
是的,这正是我想要做的
-
变量名不应以大写字符开头。您的一些变量是正确的,而另一些则不是。保持一致!!!
-
对于您遇到的异常,我们需要查看minimal reproducible example 以了解究竟发生了什么
-
如果您看到
java.lang.IndexOutOfBoundsException的索引为 0,那么当您尝试访问该元素时,该数组或列表为空。使用调试器并检查您访问的数组/列表是否已初始化。
标签: java swing arraylist jbutton