Hello! I want to make a test with questions and pictures to them.
How to insert different pictures for each item in the array, so that each window with a question opens its own picture?
Please be more detailed. I do not quite understand.
Quiz file
import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.CardLayout; import java.util.Random; import javax.swing.JOptionPane; public class Quiz extends JFrame{ JPanel p=new JPanel(); CardLayout cards=new CardLayout(); int numQs; int wrongs=0; int total=0; String[][] answers={ {"Enschede","Amsterdam","Den Haag","Berlin"}, {"Slang for Hankechief","Dutch for Keyboard","A Male Sheep","Width of a Cut"}, {"Euler","Erasmus","Fibonnaci","Archemides"}, {"Shadow of the Collosus","Lighthouse of Alexandria","Colliseum","Parthanon"}, {"Cars","Nothing","Planes","Plastic Materials"}, {"True","False"}, {"True","False"}, {"4","5","6","7"}, {"The Lion King","Hamlet","Death of The Salesmen","Phantom of the Opera"}, }; RadioQuestion questions[]={ new RadioQuestion( "What is the capital of the Netherlands?", answers[0], 1,this ), new RadioQuestion( "What is a kerf?", answers[1], 3,this ), new RadioQuestion( "Who discovered the number e?", answers[2], 0,this ), new RadioQuestion( "Which of the following is one of the 7 wonders of the ancient world?", answers[3], 1,this ), new RadioQuestion( "Which of the following is not made in China?", answers[4], 1,this ), new RadioQuestion( "True or False, Driving drunk is more dangerous than driving tired", answers[5], 1,this ), new RadioQuestion( "True or False, The Platypus is a mammal", answers[6], 0,this ), new RadioQuestion( "How many strings are there on a standard guitar?", answers[7], 2,this ), new RadioQuestion( "Which of these plays is made by shakespeare?", answers[8], 1,this ) }; public static void main(String args[]){ new Quiz(); } public Quiz(){ super("Quiz Game"); setResizable(true); setSize(500,400); setDefaultCloseOperation(EXIT_ON_CLOSE); p.setLayout(cards); numQs=questions.length; for(int i=0;i<numQs;i++){ p.add(questions[i],"q"+i); } Random r=new Random(); int i=r.nextInt(numQs); cards.show(p,"q"+i); add(p); setVisible(true); } public void next(){ if((total-wrongs)==numQs){ showSummary(); }else{ Random r=new Random(); boolean found=false; int i=0; while(!found){ i=r.nextInt(numQs); if(!questions[i].used){ found=true; } } cards.show(p,"q"+i); } } public void showSummary(){ JOptionPane.showMessageDialog(null,"All Done :), here are your results"+ "\nNumber of incorrect Answers: \t"+wrongs+ "\nNumber of Correct Answers: \t"+(total-wrongs)+ "\nAverage Incorrect Answers per Quesiotn: \t"+((float)wrongs/numQs)+ "\nPercent Correct: \t\t"+(int)(((float)(total-wrongs)/total)*100)+"%" ); System.exit(0); } } RadioQuestion file
import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.ButtonGroup; import javax.swing.JLabel; import javax.swing.JButton; import javax.swing.BoxLayout; import javax.swing.JFrame; import javax.swing.JOptionPane; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class RadioQuestion extends JPanel implements ActionListener{ int correctAns; Quiz quiz; int selected; boolean used; //questions JPanel qPanel=new JPanel(); //answers JPanel aPanel=new JPanel(); JRadioButton[] responses; ButtonGroup group=new ButtonGroup(); //bottom JPanel botPanel=new JPanel(); JButton next=new JButton("Next"); JButton finish=new JButton("Finish"); /*public static void main(String args[]){ JFrame frame=new JFrame("RadioButton Test"); frame.setSize(400,300); frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); frame.setResizable(true); String[] answers={"wrong1","right","wrong2"}; frame.add(new RadioQuestion("what's right?",answers,1)); frame.setVisible(true); }*/ public RadioQuestion(String q, String[] options, int ans, Quiz quiz){ this.quiz=quiz; setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); correctAns=ans; //question qPanel.add(new JLabel(q)); add(qPanel); //answer responses=new JRadioButton[options.length]; for(int i=0;i<options.length;i++){ responses[i]=new JRadioButton(options[i]); responses[i].addActionListener(this); group.add(responses[i]); aPanel.add(responses[i]); } add(aPanel); //bottom next.addActionListener(this); finish.addActionListener(this); botPanel.add(next); botPanel.add(finish); add(botPanel); } public void actionPerformed(ActionEvent e){ Object src=e.getSource(); //next button if(src.equals(next)){ showResult(); if(selected==correctAns){ used=true; quiz.next(); } } //finish button if(src.equals(finish)){ quiz.showSummary(); } //radio buttons for(int i=0;i<responses.length;i++){ if(src==responses[i]){ selected=i; } } } public void showResult(){ String text=responses[selected].getText(); quiz.total++; if(selected==correctAns){ JOptionPane.showMessageDialog(null,text+" is correct\nWell Done :)"); }else{ quiz.wrongs++; JOptionPane.showMessageDialog(null,text+" is wrong\nSorry :("); } } }