CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Feb 2013
    Posts
    22

    simple java gui quiz

    I'm trying to make a simple java gui quiz game. I'm making this game so I can input information to help me study for various subjects. I want this program just to ask about 20 questions multiple choice, and at the end tell you how many you got right and your percentage. Everything is going well except for the fact that I can figure out how to make the program go to the next question. I can get it to show the first question and then say if its right or wrong but it wont go on to the next question. Here's the code thanks in advance.


    PS. I know I didn't do the if, else if for the second question I just want to make sure the second question shows up first. Also I know that there might be an easier way then inputting all the questions and answers like that but I don't mind, because as I manually input the questions and answers I get a chance to learn them as well.

    Code:
    import javax.swing.*;
    import java.awt.event.*;
    
    public class quiz2 extends JFrame
    {
    	private JButton anwser1;
    	private JButton anwser2;
    	private JButton anwser3;
    	private JButton anwser4;
    	private JPanel panel;
    	private JLabel messageLabel;
    	private JLabel messageLabel2;
    	private final int WINDOW_WIDTH 	= 300;
    	private final int WINDOW_HEIGHT = 120;
    	int c = 0;
    
    	public quiz2()
    	{
    		setTitle("Event Object Demonstration");
    
    		setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
    
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		messageLabel = new JLabel("What program language is this written in");
    
    		anwser1 = new JButton("C++");
    		anwser2 = new JButton("Java");
    		anwser3 = new JButton("Unix");
    		anwser4 = new JButton("Pearl");
    
    
    		anwser1.addActionListener(new ButtonListener());
    		anwser2.addActionListener(new ButtonListener());
    		anwser3.addActionListener(new ButtonListener());
    		anwser4.addActionListener(new ButtonListener());
    
    		panel = new JPanel();
    		panel.add(messageLabel);
    		panel.add(anwser1);
    		panel.add(anwser2);
    		panel.add(anwser3);
    		panel.add(anwser4);
    
    		add(panel);
    
    		setVisible(true);
    
    
    
    			setTitle("Event Object Demonstration");
    
    			setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
    
    			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    			messageLabel = new JLabel("What is 2 + 3");
    
    			anwser1 = new JButton("5");
    			anwser2 = new JButton("19");
    			anwser3 = new JButton("1");
    			anwser4 = new JButton("6");
    
    
    			anwser1.addActionListener(new ButtonListener());
    			anwser2.addActionListener(new ButtonListener());
    			anwser3.addActionListener(new ButtonListener());
    			anwser4.addActionListener(new ButtonListener());
    
    			panel = new JPanel();
    			panel.add(messageLabel);
    			panel.add(anwser1);
    			panel.add(anwser2);
    			panel.add(anwser3);
    			panel.add(anwser4);
    
    			add(panel);
    
    			setVisible(true);
    		}
    
    
    	private class ButtonListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    
    		String actionCommand = e.getActionCommand();
    
    		if (actionCommand.equals("C++"))
    		{
    			JOptionPane.showMessageDialog(null, "Wrong");
    
    		}
    		else if (actionCommand.equals("Java"))
    		{
    			JOptionPane.showMessageDialog(null, "Correct");
    			c++;
    
    		}
    		else if (actionCommand.equals("Unix"))
    		{
    			JOptionPane.showMessageDialog(null, "Wrong");
    
    		}
    		else if (actionCommand.equals("Pearl"))
    		{
    			JOptionPane.showMessageDialog(null, "Wrong");
    		}
    
    
    	JOptionPane.showMessageDialog(null, c + "Correct out of 1" + 100 * c/1 + "%" );
    	JOptionPane.showMessageDialog(null, 100 * c/1 + "%");
    
    	}
    
    }
    
    	public static void main(String[] args)
    	{
    		quiz2 eow = new quiz2();
    
    	}
    
    }

  2. #2
    Join Date
    May 2006
    Location
    UK
    Posts
    4,473

    Re: simple java gui quiz

    Forget trying to get this code working, it just isn't the way to solve this problem.

    You need to separate the questions and answers from the GUI components. You need a single GUI class that has a field for a question and 4 choice buttons and a separate class that runs through a sequence of questions and for each question it populates the GUI with the question and answers. When the user selects an answer the GUI needs to return 1, 2, 3 or 4 or denote which answer was selected. The questions class then decides whether this is right or wrong, records the result and the moves onto the next question.
    Posting code? Use code tags like this: [code]...Your code here...[/code]
    Click here for examples of Java Code

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured