Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么JButtons不起作用?_Java_Swing_Jpanel_Jbutton - Fatal编程技术网

Java 为什么JButtons不起作用?

Java 为什么JButtons不起作用?,java,swing,jpanel,jbutton,Java,Swing,Jpanel,Jbutton,我正在制作游戏《吃豆人》,如果你被怪物杀死,它会带你到一个问题面板 所以我问了一些问题,我有一些选择按钮,比如A,B,C等等 但当你点击按钮时,终端上会显示一系列错误…问题是什么?我如何解决它 public class QuestionPanel extends JPanel { JRadioButton aButt, bButt, cButt, dButt, eButt; // buttons for the different colors the user can choo

我正在制作游戏《吃豆人》,如果你被怪物杀死,它会带你到一个问题面板

所以我问了一些问题,我有一些选择按钮,比如A,B,C等等

但当你点击按钮时,终端上会显示一系列错误…问题是什么?我如何解决它

public class QuestionPanel extends JPanel {
        JRadioButton aButt, bButt, cButt, dButt, eButt; // buttons for the different colors the user can choose.

        int fontsize = 15;
        int ans = -1;
        int rand;
        MyPanel panel;

        public QuestionPanel() {
            panel = new MyPanel();
            this.add(panel);
        }

        class MyPanel extends JPanel
        {
            UserPanel user; // used for all controls on the left
            TextPanel text; // jtextarea for the quotation

            public MyPanel()
            {
                this.setLayout(new GridLayout(0, 2));
                user = new UserPanel();
                text = new TextPanel();
                this.add(user);
                this.add(text);
            }

            // User panel has Jradiobutton, Jbutton, and scroll bar
            class UserPanel extends JPanel implements ActionListener, AdjustmentListener // this is for the buttons and the scroll bar
            {
                JButton randbutton; // this is the random button

                RadioButton radioB;
                JScrollBar size; // size of the jScrollBar

                public UserPanel()
                {
                    setLayout(new GridLayout(3, 0));
                    setBackground(Color.lightGray);
                    randbutton = new JButton("PRESS FOR RANDOM QUESTION"); // random quote button
                    randbutton.addActionListener(this);
                    this.add(randbutton);

                    radioB = new RadioButton();
                    this.add(radioB);

                    size = new JScrollBar(JScrollBar.HORIZONTAL, 15, 1, 10, 20); // size of the scroll bar

                    size.addAdjustmentListener(this); // adding the scroll bar
                    this.add(size);
                }        

                public void adjustmentValueChanged(AdjustmentEvent e) // this is for the size of the scroll bar
                {
                    randommove = false;
                    fontsize = e.getValue(); // get the value of the scroll bar depending where you keep it or turn it
                    text.repaint();
                }

                // seperate class for radio button to allow three buttons
                // next to each other
                class RadioButton extends JPanel implements ActionListener
                {
                    ButtonGroup answers; // what color it is
                                        JButton a,b,c,d;

                    public RadioButton()
                    {
                        a = new JButton("A"); // A BUTTON
                                                a.addActionListener(this);
                                                this.add(a);

                                                b = new JButton("B"); //b button
                                                b.addActionListener(this);
                                                this.add(b);

                                                c = new JButton("C");
                                                c.addActionListener(this);
                                                this.add(c);

                                                d = new JButton("D");
                                                d.addActionListener(this);
                                                this.add(d);


                    }

                    public void actionPerformed(ActionEvent e)
                    {
                        randommove = false;
                                                String command = e.getActionCommand();

                                                if(rand == 0 && command.equals("A"))
                                                {
                                                    cards.show(c,"Game");
                                                }
                                                else
                                                {
                                                    cards.show(c,"Wrong");
                                                    System.out.println("hello");
                                                }

                                                if(rand == 1 && command.equals("B"))
                                                {
                                                    cards.show(c,"Game");
                                                }
                                                else
                                                {
                                                    cards.show(c,"Wrong");
                                                                                                        System.out.println("hello");

                                                }
                                                if(rand == 2 && command.equals("D"))
                                                {
                                                    cards.show(c,"Game");
                                                }
                                                else
                                                {
                                                    cards.show(c,"Wrong");
                                                                                                        System.out.println("hello");

                                                }
                                                if(rand == 3 && command.equals("B"))
                                                {
                                                    cards.show(c,"Game");
                                                }
                                                else{
                                                    cards.show(c,"Wrong");
                                                                                                        System.out.println("hello");

                                                }






                        text.repaint(); 
                    }
                }

                public void actionPerformed(ActionEvent e)
                {
                    randommove = true;
                    text.repaint();
                }
            }

您实际上并没有设置按钮的操作命令,您只是设置文本

尝试在action listener中访问action命令时,值为
null


您需要调用以实际设置,那么,操作命令

请投入更多的精力,例如显示输出并删除代码中所有不重要的部分。没有声明名为
cards
的变量,但您尝试调用
actionPerformed
中的一个变量。