Question
I have some problems with my projects I am doing. This is a Java awt, swing java program. The program is below. Basically, I have
I have some problems with my projects I am doing. This is a Java awt, swing java program. The program is below. Basically, I have a group of multiple choice questions - 20 in total. I also have a digital clock in around 10 minutes that tells the time for someone who takes this games. Both of this classes can run separately, but when it combines it cannot run. Please help me to fix it. Furthermore, I need to create a graphical UI for he/she takes the games to log in with the password and a four-digit ID number. The ID number is randomly chosen and it will, of couse, not display for the person who takes the games. This program must also inform to he/she takes the test has 10 minutes to answer twenty questions and they should press the ENTER key to start the game. Finally, the test-taker may end the game at any time by clicking on SUBMIT button on this user interface. Thanks!
/* CLASS QUIZZ */
// create a group of multiple choice question.
import java.awt.Font; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import javax.swing.JOptionPane; import javax.swing.JFrame; import javax.swing.GroupLayout; import java.awt.event.ActionEvent; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.ButtonGroup; import javax.swing.WindowConstants;
class Quizz extends JFrame { // Variables declaration. private ButtonGroup buttonGroup1; private JButton jButton1; private JLabel lblQno; private JLabel lblQuestion; private javax.swing.JRadioButton rbAns1; private javax.swing.JRadioButton rbAns2; private javax.swing.JRadioButton rbAns3; private javax.swing.JRadioButton rbAns4; // End of variables declaration /* ArrayList to hold question numbers from 1 - 100 just initialized in contstructor and shuffled it each time it will be shuffled and random questions will be selected. */ ArrayList
//load questions by difficulty level // Easy if(difficulty==1) { lblQuestion.setText(easy[ar.get(qno)][0]); rbAns1.setText(easy[ar.get(qno)][1]); rbAns2.setText(easy[ar.get(qno)][2]); rbAns3.setText(easy[ar.get(qno)][3]); rbAns4.setText(easy[ar.get(qno)][4]); ans = easy[ar.get(qno)][5]; } //Intermediate if(difficulty==2) { lblQuestion.setText(intermediate[ar.get(qno)][0]); rbAns1.setText(intermediate[ar.get(qno)][1]); rbAns2.setText(intermediate[ar.get(qno)][2]); rbAns3.setText(intermediate[ar.get(qno)][3]); rbAns4.setText(intermediate[ar.get(qno)][4]); ans = intermediate[ar.get(qno)][5]; } //Hard if(difficulty==3) { lblQuestion.setText(hard[ar.get(qno)][0]); rbAns1.setText(hard[ar.get(qno)][1]); rbAns2.setText(hard[ar.get(qno)][2]); rbAns3.setText(hard[ar.get(qno)][3]); rbAns4.setText(hard[ar.get(qno)][4]); ans = hard[ar.get(qno)][5]; } // Impossible if(difficulty==4) { lblQuestion.setText(hard[ar.get(qno)][0]); rbAns1.setText(hard[ar.get(qno)][1]); rbAns2.setText(hard[ar.get(qno)][2]); rbAns3.setText(hard[ar.get(qno)][3]); rbAns4.setText(hard[ar.get(qno)][4]); ans = hard[ar.get(qno)][5]; } } else { JOptionPane.showMessageDialog(rootPane, "You have attempted all question and your score is " + result + "/20"); jButton1.setEnabled(false); } } private void initComponents() { buttonGroup1 = new ButtonGroup(); lblQuestion = new JLabel(); rbAns1 = new javax.swing.JRadioButton(); rbAns2 = new javax.swing.JRadioButton(); rbAns3 = new javax.swing.JRadioButton(); rbAns4 = new javax.swing.JRadioButton(); jButton1 = new JButton(); lblQno = new JLabel();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
lblQuestion.setFont(new Font("Dialog", 1, 14)); // NOI18N lblQuestion.setText("jLabel1"); buttonGroup1.add(rbAns1); rbAns1.setText("jRadioButton1"); buttonGroup1.add(rbAns2); rbAns2.setText("jRadioButton2"); buttonGroup1.add(rbAns3); rbAns3.setText("jRadioButton3"); buttonGroup1.add(rbAns4); rbAns4.setText("jRadioButton4"); jButton1.setText("Submit"); jButton1.addActionListener((java.awt.event.ActionEvent evt) -> { jButton1ActionPerformed(evt); }); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(27, 27, 27).addComponent(lblQno).addGap(27, 27, 27) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(lblQuestion, GroupLayout.PREFERRED_SIZE, 473, GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING) .addComponent(rbAns2).addComponent(rbAns1) .addComponent(rbAns3) .addComponent(rbAns4))) .addContainerGap(89, Short.MAX_VALUE)) .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton1) .addGap(251, 251, 251)) ); layout.setVerticalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(57, 57, 57) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(lblQuestion) .addComponent(lblQno)) .addGap(39, 39, 39) .addComponent(rbAns1) .addGap(18, 18, 18) .addComponent(rbAns2) .addGap(18, 18, 18) .addComponent(rbAns3) .addGap(18, 18, 18) .addComponent(rbAns4) .addGap(18, 18, 18) .addComponent(jButton1) .addContainerGap(38, Short.MAX_VALUE)) ); pack(); }// private void jButton1ActionPerformed(ActionEvent evt) { // TODO add your handling code here: String userAns = ""; if(rbAns1.isSelected()) userAns = "1"; if(rbAns2.isSelected()) userAns = "2"; if(rbAns3.isSelected()) userAns = "3"; if(rbAns4.isSelected()) userAns = "4"; if(userAns.equals("")) JOptionPane.showMessageDialog(rootPane, "Please select an answer first "); else { qno++; } boolean isAnswerCorrect = userAns.equals(ans); if(isAnswerCorrect) result++; //First 4 question will b selected from easy group if(qno < 4) loadQuestion(); else if(isAnswerCorrect) { if(difficulty==1 || difficulty==2) difficulty++; loadQuestion(); } else { if(difficulty==2 || difficulty==3) difficulty--; loadQuestion(); } } }
/* CLASS DIGITAL CLOCK */
import java.awt.Font; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Timer; import java.util.TimerTask; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JFrame;
class DigitalClock extends JFrame { // Variables int counter = 10; Boolean isIt = false; private JButton btnStart; private JButton btnStop; private JLabel timeLeft; private JLabel timerName; public DigitalClock() { initComponents2(); } private void initComponents2() { timerName = new JLabel(); timeLeft = new JLabel(); btnStop = new JButton(); btnStart = new JButton(); timerName.setFont(new Font("Tahoma", 0, 18)); timerName.setText("Timer: "); timeLeft.setFont(new Font("Tahoma", 1, 12)); timeLeft.setText("00:00"); btnStop.setText("Stop"); btnStop.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent evt) { btnStopMouseClicked(evt); } }); btnStart.setText("Start"); btnStart.setActionCommand("Start"); btnStart.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent evt) { btnStartMouseClicked(evt); } }); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(55, 55, 55) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(btnStart) .addGap(47,47,47) .addComponent(btnStop)) .addGroup(layout.createSequentialGroup() .addComponent(btnStop) .addGap(18, 18, 18) .addComponent(timeLeft))) .addContainerGap(75, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(60, 60, 60) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(timerName) .addComponent(timeLeft)) .addGap(32, 32, 32) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(btnStart) .addComponent(btnStop)) .addContainerGap(73, Short.MAX_VALUE)) ); } private void btnStartMouseClicked(MouseEvent evt) { Timer timer = new Timer(); // new Timer counter = 10; // setting the counter to 10 secs Thread thread = new Thread(); TimerTask task = new TimerTask() { @Override public void run() { timeLeft.setText(Integer.toString(counter)); // the timer label to counter. counter--; try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(DigitalClock.class.getName()).log(Level.SEVERE, null, ex); } if(counter == -1) { timer.cancel(); } else if(isIt){ timer.cancel(); isIt = false; } } }; timer.scheduleAtFixedRate(task, 1000, 1000); // (task, delay, period) } private void btnStopMouseClicked(MouseEvent evt) { isIt = true; // changing the boolean isIt to true, which will stop the timer. } }
/* CLASS MAIN TO RUN THE PROGRAM */
import javax.swing.UIManager.LookAndFeelInfo; import java.util.logging.Logger; import java.util.logging.Level;
public class Main { public static void main(String[] args) { try { for (LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) { Logger.getLogger(Quizz.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(DigitalClock.class.getName()).log(Level.SEVERE, null, ex); }
java.awt.EventQueue.invokeLater(() -> { new Quizz().setVisible(true); new DigitalClock().setVisible(true); }); } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started