![](/img/trans.png)
[英]I've created a quiz however I'm not sure how to implement the capturing of the buttons pressed to check against the answer using Parse
[英]I'm using JTabbedPane for my quiz program, not sure how to get my buttons to display the answers
就像我說的那樣,我不確定如何遍歷數組,因此它會在每個窗格中顯示問題,我有8個窗格,每個窗格都應包含一個問題,我設法使其適用於一個問題(問題1顯示數組中的第一個條目),而不顯示其他條目。
有什么建議么?
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();
}
}
為了使事情變得容易,您可以創建一個稱為CreateTabs的方法,該方法將根據問題列表(probList)構建每個選項卡。 參見下面的代碼:
public void CreateTabs() {
JPanel question = null;
JLabel lbQuestion = null;
JButton ansA = null;
JButton ansB = null;
JButton ansC = null;
for (int i=0;i<probList.length;i++) {
question = new JPanel();
lbQuestion = new JLabel(probList[i].getQuestion());
question.add(lbQuestion);
ansA = new JButton(probList[i].getAnsA());
ansB = new JButton(probList[i].getAnsB());
ansC = new JButton(probList[i].getAnsC());
question.add(ansA);
question.add(ansB);
question.add(ansC);
quiz.addTab("Question " + (i+1), question);
}
}
在QuizEasy構造函數中,您將具有以下內容:
public QuizEasy() {
problems();
CreateTabs();
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.