Java 如何计算所选单选按钮的数量并在下面的代码中显示分数?

Java 如何计算所选单选按钮的数量并在下面的代码中显示分数?,java,swing,applet,jradiobutton,Java,Swing,Applet,Jradiobutton,请有人帮我显示分数。我是编程新手。我想在消息框中显示分数。我的问题是scr变量没有递增 package QuizPackage; import javax.swing.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; public class QuizP

请有人帮我显示分数。我是编程新手。我想在消息框中显示分数。我的问题是scr变量没有递增

package QuizPackage;

import javax.swing.*;
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class QuizPackage extends JFrame implements ActionListener,ItemListener
{

    JFrame framea;
    JLabel strt,head,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10;
    JRadioButton rd1,rd2,rd3,rd4, rd5,rd6,rd7,rd8, rd9,rd10,rd11,rd12,rd13,rd14,rd15,rd16,rd17,rd18,rd19,rd20;
    ButtonGroup a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
    JButton start,next,submit;

    public void go()
    {
        JFrame framea=new JFrame();
        JButton start=new JButton("Start");
        JLabel strt=new JLabel("QUIZ APPLICATION");
        start.addActionListener(this);
        framea.setLayout(null);
        framea.setSize(1500, 1200);
        framea.setVisible(true);
        framea.add(start);
        start.setBounds(550, 500, 90, 40);
        framea.add(strt);
        strt.setBounds(550,200, 150, 100);
    }

    public void actionPerformed(ActionEvent ev) {
        // TODO Auto-generated method stub
        int scr=0;
        if(ev.getSource()==rd2)
        {
            scr=scr+1;

        }
        String str=(String)ev.getActionCommand();
        if(str.equals("Start"))
        {
            JFrame framea=new JFrame();

            JLabel head=new JLabel("QUIZ APPLICATION");
            JLabel q1=new JLabel("1.Which feature in oop allow reuse?");
            q1.setAlignmentX((float)1);
            JRadioButton rd1=new JRadioButton("Polymorphism");
            JRadioButton rd2=new JRadioButton("Inheritance");
            JRadioButton rd3=new JRadioButton("Encapsulation");
            JRadioButton rd4=new JRadioButton("Data Hiding");
            rd2.addItemListener(new QuizPackage());
            ButtonGroup a1=new ButtonGroup();
            a1.add(rd1);
            a1.add(rd2);
            a1.add(rd3);
            a1.add(rd4);

            JLabel q2=new JLabel("2.Function that changes the state of cout object ?");
            q1.setAlignmentX((float)1);
            JRadioButton rd5=new JRadioButton("Member");
            JRadioButton rd6=new JRadioButton("Adjuster");
            JRadioButton rd7=new JRadioButton("Manipulator");
            JRadioButton rd8=new JRadioButton("Operator");
            ButtonGroup a2=new ButtonGroup();
            a2.add(rd5);
            a2.add(rd6);
            a2.add(rd7);
            a2.add(rd8);

            JLabel q3=new JLabel("3.What does c++ append at the end of string?");
            q1.setAlignmentX((float)1);
            JRadioButton rd9=new JRadioButton("Space");
            JRadioButton rd10=new JRadioButton("Number sign");
            JRadioButton rd11=new JRadioButton("Asterisk");
            JRadioButton rd12=new JRadioButton("Null Character");
            ButtonGroup a3=new ButtonGroup();
            a3.add(rd9);
            a3.add(rd10);
            a3.add(rd11);
            a3.add(rd12);

            JLabel q4=new JLabel("4.An array element is accessed using?");
            q1.setAlignmentX((float)1);
            JRadioButton rd13=new JRadioButton("Brackets");
            JRadioButton rd14=new JRadioButton("Dot Operator");
            JRadioButton rd15=new JRadioButton("Member Name");
            JRadioButton rd16=new JRadioButton("Index Number");
            ButtonGroup a4=new ButtonGroup();
            a4.add(rd13);
            a4.add(rd14);
            a4.add(rd15);
            a4.add(rd16);

            JLabel q5=new JLabel("5.External Documentation includes?");
            q5.setAlignmentX((float)1);
            JRadioButton rd17=new JRadioButton("Print out");
            JRadioButton rd18=new JRadioButton("Flow chart");
            JRadioButton rd19=new JRadioButton("Pseudocode");
            JRadioButton rd20=new JRadioButton("Coding");
            ButtonGroup a5=new ButtonGroup();
            a5.add(rd17);
            a5.add(rd18);
            a5.add(rd19);
            a5.add(rd20);
            JButton next=new JButton("next");
            next.addActionListener(this);

            framea.setLayout(null);
            framea.setSize(1500, 1200);
            framea.add(head);
            head.setBounds(550, 5, 150, 100);
            framea.add(q1);
            q1.setBounds(30,60, 250, 70);
            framea.add(rd1);
            rd1.setBounds(35, 110, 120, 20);
            framea.add(rd2);
            rd2.setBounds(160, 110, 120, 20);
            framea.add(rd3);
            rd3.setBounds(285, 110, 120, 20);
            framea.add(rd4);
            rd4.setBounds(410, 110, 120, 20);
            framea.add(q2);
            q2.setBounds(30, 150, 300, 20);
            framea.add(rd5);
            rd5.setBounds(35, 180, 120, 20);
            framea.add(rd6);
            rd6.setBounds(160, 180, 120, 20);
            framea.add(rd7);
            rd7.setBounds(285, 180, 120, 20);
            framea.add(rd8);
            rd8.setBounds(410, 180, 120, 20);
            framea.add(q3);
            q3.setBounds(30, 220, 300, 20);
            framea.add(rd9);
            rd9.setBounds(35, 250, 120, 20);
            framea.add(rd10);
            rd10.setBounds(160, 250, 120, 20);
            framea.add(rd11);
            rd11.setBounds(285, 250, 120, 20);
            framea.add(rd12);
            rd12.setBounds(410, 250, 120, 20);
            framea.add(q4);
            q4.setBounds(30, 290, 300, 20);
            framea.add(rd13);
            rd13.setBounds(35, 320, 120, 20);
            framea.add(rd14);
            rd14.setBounds(160, 320, 120, 20);
            framea.add(rd15);
            rd15.setBounds(285, 320, 120, 20);
            framea.add(rd16);
            rd16.setBounds(410, 320, 120, 20);
            framea.add(q5);
            q5.setBounds(30, 360, 300, 20);
            framea.add(rd17);
            rd17.setBounds(35, 390, 120, 20);
            framea.add(rd18);
            rd18.setBounds(160, 390, 120, 20);
            framea.add(rd19);
            rd19.setBounds(285, 390, 120, 20);
            framea.add(rd20);
            rd20.setBounds(410, 390, 120, 20);
            framea.add(next);
            next.setBounds(550, 500, 90, 40);
            framea.setVisible(true);
        }
        else if(str.equals("next"))
           {   

           JFrame framea=new JFrame();
           framea.setLayout(null);
           framea.setSize(1500, 1200);
           framea.setVisible(true);

           JLabel q6=new JLabel("6.Null character needs a space of?");
           q6.setAlignmentX((float)1);
           JRadioButton rd21=new JRadioButton("Zero Byte");
           JRadioButton rd22=new JRadioButton("One Byte");
           JRadioButton rd23=new JRadioButton("Three Bytes");
           JRadioButton rd24=new JRadioButton("Four Bytes");
           ButtonGroup a6=new ButtonGroup();
           a6.add(rd21);
           a6.add(rd22);
           a6.add(rd23);
           a6.add(rd24);
           JLabel q7=new JLabel("7.Format flags may be combined using ?");
           q7.setAlignmentX((float)1);
           JRadioButton rd25=new JRadioButton("Bitwise OR (|)");
           JRadioButton rd26=new JRadioButton("lOGICAL OR (||)");
           JRadioButton rd27=new JRadioButton("Bitwise AND (&)");
           JRadioButton rd28=new JRadioButton("LOGICAL AND (&&)");
           ButtonGroup a7=new ButtonGroup();
           a7.add(rd25);
           a7.add(rd26);
           a7.add(rd27);
           a7.add(rd28);

           JLabel q8=new JLabel("8.Elements in array are identified by?");
           q8.setAlignmentX((float)1);
           JRadioButton rd29=new JRadioButton("Data type");
           JRadioButton rd30=new JRadioButton("Order");
           JRadioButton rd31=new JRadioButton("Subscript");
           JRadioButton rd32=new JRadioButton("Symbol");
           ButtonGroup a8=new ButtonGroup();
           a8.add(rd29);
           a8.add(rd30);
           a8.add(rd31);
           a8.add(rd32);

           JLabel q9=new JLabel("9.Body of c++ function is surrounder by?");
           q9.setAlignmentX((float)1);
           JRadioButton rd33=new JRadioButton("Parenthesis");
           JRadioButton rd34=new JRadioButton("Angle Brackets");
           JRadioButton rd35=new JRadioButton("Curly Brackets");
           JRadioButton rd36=new JRadioButton("Square Brackets");
           ButtonGroup a9=new ButtonGroup();
           a9.add(rd33);
           a9.add(rd34);
           a9.add(rd35);
           a9.add(rd36);

           JLabel q10=new JLabel("10.The loosest type of coupling?");
           q10.setAlignmentX((float)1);
           JRadioButton rd37=new JRadioButton("Data");
           JRadioButton rd38=new JRadioButton("Control");
           JRadioButton rd39=new JRadioButton("External");
           JRadioButton rd40=new JRadioButton("Pathological");
           ButtonGroup a10=new ButtonGroup();
           a10.add(rd37);
           a10.add(rd38);
           a10.add(rd39);
           a10.add(rd40);
           JButton submit=new JButton("submit");
           submit.addActionListener(this);
           framea.add(q6);
           q6.setBounds(30,60, 250, 70);
           framea.add(rd21);
           rd21.setBounds(35, 110, 120, 20);
           framea.add(rd22);
           rd22.setBounds(160, 110, 120, 20);
           framea.add(rd23);
           rd23.setBounds(285, 110, 120, 20);
           framea.add(rd24);
           rd24.setBounds(410, 110, 120, 20);
           framea.add(q7);
           q7.setBounds(30, 150, 300, 20);
           framea.add(rd25);
           rd25.setBounds(35, 180, 120, 20);
           framea.add(rd26);
           rd26.setBounds(160, 180, 120, 20);
           framea.add(rd27);
           rd27.setBounds(285, 180, 120, 20);
           framea.add(rd28);
           rd28.setBounds(410, 180, 120, 20);
           framea.add(q8);
           q8.setBounds(30, 220, 300, 20);
           framea.add(rd29);
           rd29.setBounds(35, 250, 120, 20);
           framea.add(rd30);
           rd30.setBounds(160, 250, 120, 20);
           framea.add(rd31);
           rd31.setBounds(285, 250, 120, 20);
           framea.add(rd32);
           rd32.setBounds(410, 250, 120, 20);
           framea.add(q9);
           q9.setBounds(30, 290, 300, 20);
           framea.add(rd33);
           rd33.setBounds(35, 320, 120, 20);
           framea.add(rd34);
           rd34.setBounds(160, 320, 120, 20);
           framea.add(rd35);
           rd35.setBounds(285, 320, 120, 20);
           framea.add(rd36);
           rd36.setBounds(410, 320, 120, 20);
           framea.add(q10);
           q10.setBounds(30, 360, 300, 20);
           framea.add(rd37);
           rd37.setBounds(35, 390, 120, 20);
           framea.add(rd38);
           rd38.setBounds(160, 390, 120, 20);
           framea.add(rd39);
           rd39.setBounds(285, 390, 120, 20);
           framea.add(rd40);
           rd40.setBounds(410, 390, 120, 20);
           framea.add(submit);
           submit.setBounds(550, 500, 90, 40);
           }
          else if(str.equals("submit"))
          {
        System.out.println(scr);e
我希望代码显示在此消息对话框boc中

JOptionPane.showMessageDialog(QuizPackage.this,"Score ="+scr,ev.getActionCommand(),scr);
}
}
public static void main(String args[])
{
    QuizPackage ob1=new QuizPackage();
    ob1.go();

}

public void itemStateChanged(ItemEvent e) {
}
}

你能把问题简化一下吗?要想弄清楚你的问题到底是什么,需要挖掘大量的代码。。。d15我会创建一个在for循环中填充的列表。然后,您可以在集合上迭代以计数所选的收音机按钮。@ArnaudDenoyelle是正确的。如果您想为单选按钮构建一个数组或列表,那么数据结构会使操作变得更加容易如果您的代码缺少QuizPackage类。您的代码甚至不编译,更不用说运行了。您的代码是一个巨大的程序混乱,没有Swing布局。您没有数据模型。你不能把关注点分开。你不能通过,也不能收取200美元,