Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 multiple buttons tags
Index -> Programming, Java -> Java Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Nezura




PostPosted: Thu Oct 21, 2004 7:33 pm   Post subject: multiple buttons tags

Your Task:
Write a program that asks the user 5 multiple choice questions about JAVA, each with at most 5 possible answers(but there must be a variety in the number of possible answers). The program should allow the user to click on an option, and then should tell them whether or not they had the correct answer and what the correct answer is. The user should only have one chance to answer the question. Keep track of their score and display it in a separate frame if they click on the "display score" button. Include an appropriate picture, a nice title for the program, and a title in the frame's browser bar.

Ok here's my dilema, I've typed up what i think the program needs inorder to run; i'm using "Ready to program". When i run it, i am able to click the answers to the first multiple choice question and the answer does pop up, but when i click next question the buttons are not re enabled and the data in them do not change. Another problem is when i click "display score" the new score frame does not show. Finally, the pictures are not showing either. I appreciate any help and would take suggestions on improving this. Thanks in advance


code:

//Created by Howard Tse
//Multiple Buttons Task
//Last modified: October 21, 2004

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class multiple_buttons extends JApplet implements ActionListener
{
    static int scorecounter = 0;
    JButton score = new JButton ("Click here to display your score"); //button when clicked displays your score
    JButton [] buttons = new JButton [5]; //answer buttons
    JButton nextq = new JButton ("Press Me for next Question"); //I had to add in an extra button to go to the next question
    JLabel Qlabel = new JLabel (""); //question label           //because they did not include any method to alternate
    static int counter = 0; //counts the quesion number         //between each question. I assume they intended to wait
    JLabel Plabel = new JLabel (""); //label to store picture   //perhaps 5 seconds after the answer has been shown to switch
    //to the next question, we have not been taught how to do so
    //I have changed it.


    JLabel empty = new JLabel (""); //empty space, used to change between checkmark and Xmark
    JFrame questionframe = new JFrame ("Multiple Buttons Question"); //main frame with all questions and answers

    Icon check = new ImageIcon ("C:/WINDOWS/Desktop/multi3/checkmark.bmp");
    Icon incorrect = new ImageIcon ("C:/WINDOWS/Desktop/multi3/incorrect.bmp");
    Icon blank = new ImageIcon ("C:/WINDOWS/Desktop/multi3/blank.bmp");


    public void init ()
    {




        questionframe.setSize (500, 800);
        questionframe.getContentPane ().setLayout (new GridLayout (5, 2));
        questionframe.getContentPane ().add (Qlabel);

        Qlabel.setText ("Who/What is known as the father of JAVA?");

        questionframe.getContentPane ().add (empty);
        questionframe.getContentPane ().add (score);


        for (int x = 0 ; x < 5 ; x++)
        {
            buttons [x] = new JButton ("");
            buttons [x].addActionListener (this);
            questionframe.getContentPane ().add (buttons [x]);
        }
        buttons [0].setText ("a) Sun MicroSystems");
        buttons [1].setText ("b) James Gosling");
        buttons [2].setText ("c) C++");
        buttons [3].setText ("d) Bill Gates");
        buttons [4].setText ("e) Microsoft");
        questionframe.getContentPane ().add (nextq);
        questionframe.setVisible (true);
        nextq.setEnabled (false);
    }


    public void actionPerformed (ActionEvent e)
    {
        Container yourscore = new Container ();
        JLabel shownscore = new JLabel ("Your Score is:" + scorecounter);
        yourscore.setLayout (new FlowLayout ());
        yourscore.add (shownscore); //adds the label shownscore to the container
        JFrame scoreframe = new JFrame ("Your Score is...");
        scoreframe.setSize (400, 400);
        scoreframe.getContentPane ().add (yourscore); //adds the container to the new frame
        scoreframe.setVisible (false); //sets the frame invisible


        if (e.getSource () == nextq)
        {
            counter++;
        }

        else if (e.getSource () == score)
        {


            scoreframe.setVisible (true);
        }


        else if (counter == 0) //Question 1
        {
            if (e.getSource () == buttons [0])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("b) James Gosling");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [1])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (check);
                scorecounter++;
                Qlabel.setText ("b) James Gosling");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [2])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("b) James Gosling");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [3])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("b) James Gosling");
                nextq.setEnabled (true);
            }
            else if (e.getSource () == buttons [4])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("b) James Gosling");
                nextq.setEnabled (true);
            }
        }
        else if (counter == 1) //Question 2
        {
            for (int a = 0 ; a < 5 ; a++) //All the values inside the question and answer are reset to those of question 2
            {
                buttons [a].setEnabled (true);
            }
            empty.setIcon (blank);
            Qlabel.setText ("Which of the Following is an integer type?");
            buttons [0].setText ("a) boolean");
            buttons [1].setText ("b) double");
            buttons [2].setText ("c) chor");
            buttons [3].setText ("d) long");
            buttons [4].setText ("");
            buttons [4].setEnabled (false);
            nextq.setEnabled (false);

            if (e.getSource () == buttons [0])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("d) long");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [1])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("d) long");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [2])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("d) long");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [3])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (check);
                scorecounter++;
                Qlabel.setText ("d) long");
                nextq.setEnabled (true);
            }

        }

        else if (counter == 2) //Question 3
        {
            for (int a = 0 ; a < 5 ; a++) //All the values inside the question and answer are reset to those of question 3
            {
                buttons [a].setEnabled (true);
            }
            empty.setIcon (blank);
            Qlabel.setText ("Which of the following adds 5 spaces");
            buttons [0].setText ("a) /t");
            buttons [1].setText ("b) \t");
            buttons [2].setText ("c) /space");
            buttons [3].setText ("");
            buttons [4].setText ("");

            buttons [3].setEnabled (false);
            buttons [4].setEnabled (false);
            nextq.setEnabled (false);

            if (e.getSource () == buttons [0])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("b) \t");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [1])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (check);
                scorecounter++;
                Qlabel.setText ("b) \t");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [2])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("b) \t");
                nextq.setEnabled (true);
            }

        }
        else if (counter == 3) //Question 4
        {
            for (int a = 0 ; a < 5 ; a++) //All the values inside the question and answer are reset to those of question 4
            {
                buttons [a].setEnabled (true);
            }
            empty.setIcon (blank);
            Qlabel.setText ("!= means");
            buttons [0].setText ("a) not equal");
            buttons [1].setText ("b) equal");
            buttons [2].setText ("");
            buttons [3].setText ("");
            buttons [4].setText ("");

            buttons [2].setEnabled (false);
            buttons [3].setEnabled (false);
            buttons [4].setEnabled (false);
            nextq.setEnabled (false);

            if (e.getSource () == buttons [0])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (check);
                scorecounter++;
                Qlabel.setText ("a) not equal");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [1])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("a) not equal");
                nextq.setEnabled (true);
            }

        }

        else if (counter == 4) //Question 5
        {
            for (int a = 0 ; a < 5 ; a++) //All the values inside the question and answer are reset to those of question 5
            {
                buttons [a].setEnabled (true);
            }
            empty.setIcon (blank);
            Qlabel.setText ("Is JAVA a compiled or interpreted language?");
            buttons [0].setText ("a) Compiled");
            buttons [1].setText ("b) Interpreted");
            buttons [2].setText ("c) Neither");
            buttons [3].setText ("d) Both");
            buttons [4].setText ("");

            buttons [4].setEnabled (false);
            nextq.setEnabled (false);

            if (e.getSource () == buttons [0])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (check);
                scorecounter++;
                Qlabel.setText ("a) Compiled");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [1])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("a) Compiled");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [2])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("a) Compiled");
                nextq.setEnabled (true);
            }

            else if (e.getSource () == buttons [3])
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setEnabled (false);
                }
                empty.setIcon (incorrect);
                Qlabel.setText ("a) Compiled");
                nextq.setEnabled (true);
            }


            else if (counter == 5) //All questions are answered page
            {
                for (int a = 0 ; a < 5 ; a++)
                {
                    buttons [a].setText ("");
                }
                empty.setIcon (blank);
                Qlabel.setText ("You are now complete the quiz, Press score button");

                nextq.setText ("");
                nextq.setEnabled (false);

            }
        }
    }
}

Sponsor
Sponsor
Sponsor
sponsor
Display posts from previous:   
   Index -> Programming, Java -> Java Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 1 Posts ]
Jump to:   


Style:  
Search: