これは、どのように配列をループするかわからないので、 8つのペインがあり、それぞれに質問が含まれていなければなりません。質問1は配列1の最初のエントリを表示しますが、他のものは表示しません。私のクイズプログラムにJTabbedPaneを使用していますが、答えを表示するためのボタンを取得する方法がわかりません
提案がありますか?
int total = 0;
int counter = 0;
JPanel question1 = new JPanel();
JPanel question2 = new JPanel();
JPanel question3 = new JPanel();
JPanel question4 = new JPanel();
JPanel question5 = new JPanel();
JPanel question6 = new JPanel();
JPanel question7 = new JPanel();
JPanel question8 = new JPanel();
JTabbedPane quiz = new JTabbedPane();
JLabel lblQuestion1 = new JLabel();
JLabel lblQuestion2 = new JLabel();
JLabel lblQuestion3 = new JLabel();
JLabel lblQuestion4 = new JLabel();
JLabel lblQuestion5 = new JLabel();
JLabel lblQuestion6 = new JLabel();
JLabel lblQuestion7 = new JLabel();
JLabel lblQuestion8 = new JLabel();
JButton question1A = new JButton("Answer A");
JButton question1B = new JButton("Answer B");
JButton question1C = new JButton("Answer C");
JButton question2A = new JButton("Answer A");
JButton question2B = new JButton("Answer B");
JButton question2C = new JButton("Answer C");
JButton question3A = new JButton("Answer A");
JButton question3B = new JButton("Answer B");
JButton question3C = new JButton("Answer C");
Problem[] probList = new Problem[5];
public QuizEasy(){
createLabel();
createTabs();
questionsEasy();
problems();
nextQuestion();
updateScreen();
setTitle("Easy Questions");
setSize(680,300);
getContentPane().add(quiz);
JButton finish = new JButton("Finish Quiz");
question8.add(finish);
ButtonHandler phandler = new ButtonHandler();
finish.addActionListener(phandler);
setVisible(true);
}
public void nextQuestion(){
//go forward one question if possible
counter++;
if (counter >= probList.length){
counter = probList.length - 1;
} // end if
updateScreen();
}
public void updateScreen(){
Problem p = probList[counter];
lblQuestion1.setText(p.getQuestion());
question1A.setText(p.getAnsA());
question1B.setText(p.getAnsB());
question1C.setText(p.getAnsC());
lblQuestion2.setText(p.getQuestion());
question2A.setText(p.getAnsA());
question2B.setText(p.getAnsB());
question2C.setText(p.getAnsC());
}
public void questionsEasy(){
question1.add(question1A);
question1.add(question1B);
question1.add(question1C);
question2.add(question2A);
question2.add(question2B);
question2.add(question2C);
question3.add(question3A);
question3.add(question3B);
question3.add(question3C);
}
public void problems(){
probList[0] = new Problem(
"What is the meaning of life?",
"Only god knows",
"42",
"huh?",
"B"
);
probList[1] = new Problem(
"What level woodcutting do you need to cut oaks in runescape",
"15",
"20",
"99",
"C"
);
probList[2] = new Problem(
"Who has recieved the highest amount of oscars?",
"Walt Disney",
"You",
"Leonardo Di Caprio",
"A"
);
probList[3] = new Problem(
"What is the most spoken native tounge in the world?",
"English",
"Ailien",
"Mandarin",
"C"
);
probList[4] = new Problem(
"What is the airspeed velocity of an unladen swallow?",
"42 beats per second",
"10 miles per hour",
"African or European?",
"C"
);
}
public void createLabel(){
/*JLabel easyQuestion1 = new JLabel();
easyQuestion1.setText("What level do you need in the game Runescape to cut oak?");
question1.add(easyQuestion1);*/
lblQuestion1 = new JLabel("Question");
lblQuestion2 = new JLabel("Question");
lblQuestion3 = new JLabel("Question");
lblQuestion4 = new JLabel("Question");
lblQuestion5 = new JLabel("Question");
lblQuestion6 = new JLabel("Question");
lblQuestion7 = new JLabel("Question");
lblQuestion8 = new JLabel("Question");
question1.add(lblQuestion1);
question2.add(lblQuestion2);
question3.add(lblQuestion3);
question4.add(lblQuestion4);
question5.add(lblQuestion5);
question6.add(lblQuestion6);
question7.add(lblQuestion7);
question8.add(lblQuestion8);
}
public void createTabs(){
quiz.addTab("Question 1", question1);
quiz.addTab("Question 2", question2);
quiz.addTab("Question 3", question3);
quiz.addTab("Question 4", question4);
quiz.addTab("Question 5", question5);
quiz.addTab("Question 6", question6);
quiz.addTab("Question 7", question7);
quiz.addTab("Question 8", question8);
}
class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
showSummary();
}
}
public void showSummary(){
JOptionPane.showMessageDialog(null,"You have completed the quiz, here are your results"
);
System.exit(0);
}
public static void main(String[] args) {
QuizEasy tab = new QuizEasy();
}
}
まず第一に、メソッド、クラス、コレクションと配列を使用して、すべての不要なコードの冗長性を取り除きます。さもなければあなた(そして私たち)はデバッグの悪夢に悩まされます。 –