Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6023351
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T03:59:32+00:00 2026-05-23T03:59:32+00:00

My problem is that at the moment I am making a GUI for a

  • 0

My problem is that at the moment I am making a GUI for a game and this GUI has many buttons. I had a problem earlier in my code where the actionListener I was using was looking for events in two buttons in rapid succession, not giving enough time for the second button to perform and action and rendering it useless. I thought I overcame that by making the second button a different actionListener in an inner class

button5.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {

and now I’m trying to do the same for a third (and eventually fourth and fifth button

P1Roll.addActionListener(new ActionListener(){
    public void ActionPerformed(ActionEvent e){

but it is throwing me all kinds of errors. As I am very new to swing, I am unsure how to proceed. Any tips on this, or anything in my code at all would be very much appreciated. 🙂

import java.awt.Font;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;
import javax.swing.border.Border;

public class GUI_Windows extends JFrame implements ActionListener {

    public static void main(String[] args) {

        new GUI_Windows();

        Random rand1, rand2, rand3, rand4;
        int dice1, dice2, dice3, dice4;
        int numTurns = Turns.getValue();

        rand1 = new Random();
        rand2 = new Random();
        rand3 = new Random();
        rand4 = new Random();

        dice1 = rand1.nextInt(6 - 1 + 1) + 1;
        dice2 = rand2.nextInt(6 - 1 + 1) + 1;
        dice3 = rand3.nextInt(6 - 1 + 1) + 1;
        dice4 = rand4.nextInt(6 - 1 + 1) + 1;

    }

    Box MegaBox, box1, box2, box3, box4, box5, box6, box7, box8, box9, box10,
            box11;

    Box Minibox1, Minibox2, Minibox3, Minibox4, Minibox5, MiniMegaBox;

    Box MegaBox2, box12, box13, box14, box15, box16, box17, box18, box19,
            box20, box21, box22, box23;

    JLabel TitleLabel, InstructionLabel, Instructions, SelectMode, LoG;

    Border spacer1 = BorderFactory.createEmptyBorder(5, 5, 50, 5);
    Border spacer2 = BorderFactory.createEmptyBorder(5, 60, 5, 0);
    Border spacer3 = BorderFactory.createEmptyBorder(5, 0, 5, 60);
    Border spacer4 = BorderFactory.createEmptyBorder(0, 0, 5, 45);
    Border spacer5 = BorderFactory.createEmptyBorder(0, 0, 6, 0);
    Border spacer6 = BorderFactory.createEmptyBorder(5, 10, 0, 70);
    Border spacer7 = BorderFactory.createEmptyBorder(0, 0, 0, 35);

    JRadioButton button1, button2;

    JButton button3, button4;

    JButton button5, button6;

    static JSlider Turns;

    public GUI_Windows() {

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                button3.doClick();
            }
        });

        this.setTitle("Bottom Out!");
        this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        this.setResizable(false);
        this.setLocation(500, 125);
        this.setSize(350, 421);

        MegaBox = Box.createVerticalBox();

        box1 = Box.createVerticalBox();
        box1.setBorder(spacer1);
        box2 = Box.createVerticalBox();
        box2.setBorder(spacer2);

        box3 = Box.createHorizontalBox();
        box4 = Box.createHorizontalBox();
        box4.setBorder(spacer3);

        box5 = Box.createVerticalBox();
        box5.setBorder(spacer5);

        box6 = Box.createHorizontalBox();
        box7 = Box.createHorizontalBox();
        box8 = Box.createHorizontalBox();

        box9 = Box.createHorizontalBox();

        box10 = Box.createHorizontalBox();
        box10.setBorder(spacer7);

        box11 = Box.createHorizontalBox();
        box11.setBorder(spacer6);

        button1 = new JRadioButton();
        button1.addActionListener(this);
        button2 = new JRadioButton();
        button2.addActionListener(this);

        TitleLabel = new JLabel("BOTTOM OUT");
        TitleLabel.setFont(new Font("Times New Roman", Font.BOLD, 20));
        TitleLabel.setAlignmentY(1);

        InstructionLabel = new JLabel("Instructions:");
        InstructionLabel.setAlignmentY(0);
        InstructionLabel.setFont(new Font("Arial", Font.BOLD, 15));

        Instructions = new JLabel();
        Instructions.setAlignmentY(0);
        Instructions
                .setText("<HTML>Each game will be 3 - 20 turns, with either One Player versus the Computer, or Two Players "
                        + "versus each other. Each turn, you will roll two die, and then the two die are totaled up, and "
                        + "multiplied by the number of the roll it is for that turn. If this total is equal to, or higher than the "
                        + "total of your last scores in that turn, than you add those points to your score for that turn. Then you "
                        + "may choose to roll again, or end your turn to lock in your points for that turn.</HTML>");

        SelectMode = new JLabel("Select Mode:");
        SelectMode.setFont(new Font("Arial", Font.BOLD, 15));

        LoG = new JLabel("Select number of Turns:");

        Turns = new JSlider(2, 20, 2);
        Turns.setMajorTickSpacing(2);
        Turns.setMinorTickSpacing(1);
        Turns.setPaintTicks(true);
        Turns.setPaintLabels(true);
        Turns.setSnapToTicks(true);

        button3 = new JButton("Quit");
        button3.setVisible(true);
        button3.addActionListener(this);

        button4 = new JButton("Next");
        button4.setVisible(true);
        button4.addActionListener(this);

        button5 = new JButton("Done");
        button5.setVisible(true);
        // button5.addActionListener(this);

        button6 = new JButton("Done");
        button6.setVisible(true);
        button6.addActionListener(this);

        ButtonGroup group1 = new ButtonGroup();
        group1.add(button1);
        group1.add(button2);

        ButtonGroup group2 = new ButtonGroup();
        group2.add(button3);
        group2.add(button4);

        box6.add(TitleLabel);
        box7.add(InstructionLabel);
        box7.add(Box.createHorizontalGlue());
        box7.add(new JLabel(" "));
        box8.add(Instructions);

        box3.add(SelectMode);
        box3.add(Box.createHorizontalGlue());
        box3.add(new JLabel(" "));

        box4.add(button1);
        box4.add(new JLabel(" One Player"));
        box4.add(Box.createHorizontalGlue());
        box4.add(button2);
        box4.add(new JLabel(" Two Players"));

        box9.add(LoG);
        box9.setBorder(spacer4);

        box10.add(Turns);
        box10.add(Box.createHorizontalGlue());
        box10.add(new JLabel(" "));

        box11.add(button3);
        box11.add(Box.createHorizontalGlue());
        box11.add(button4);

        box1.add(box6);
        box1.add(box7);
        box1.add(box8);

        box5.add(box3);
        box5.add(box4);

        box2.add(box5);
        box2.add(box9);
        box2.add(box10);
        box2.add(box11);

        MegaBox.add(box1);
        MegaBox.add(box2);

        this.add(MegaBox);
        this.setVisible(true);

    }

    int onePlayer = 0;
    int isDone = 0;

    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == button3) {
            System.exit(0);
        }
        if (button1.isSelected()) {
            onePlayer = 1;
        } else if (button2.isSelected()) {
            onePlayer = 2;
        }
        if (e.getSource() == button4 && onePlayer == 0) {
            JOptionPane.showMessageDialog(button1,
                    "You must select the number of players!", "Try again!",
                    JOptionPane.WARNING_MESSAGE);
        } else if (e.getSource() == button4 && onePlayer != 0) {

            final JFrame pFrame = new JFrame();

            pFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            pFrame.setTitle("Bottom Out!");
            pFrame.setResizable(false);
            pFrame.setLocation(500, 125);
            pFrame.setSize(250, 200);

            JLabel EnterName1, EnterName2;

            final JTextField NameBox1;
            final JTextField NameBox2;

            Border border1 = BorderFactory.createEmptyBorder(5, 25, 15, 25);
            Border border2 = BorderFactory.createEmptyBorder(15, 25, 5, 25);
            Border border3 = BorderFactory.createEmptyBorder(5, 0, 5, 0);

            EnterName1 = new JLabel("Player 1, please enter your name:");
            EnterName2 = new JLabel("Player 2, please enter your name:");

            NameBox1 = new JTextField("Miller");
            NameBox2 = new JTextField("Julian");

            if (onePlayer == 1) {
                NameBox2.setEditable(false);
                NameBox2.setText("Watson");
            }

            Minibox1 = Box.createVerticalBox();
            Minibox2 = Box.createVerticalBox();
            Minibox3 = Box.createVerticalBox();
            Minibox4 = Box.createHorizontalBox();
            MiniMegaBox = Box.createVerticalBox();

            Minibox1.add(EnterName1);
            Minibox1.add(NameBox1);
            Minibox1.setBorder(border1);

            Minibox2.add(EnterName2);
            Minibox2.add(NameBox2);
            Minibox2.setBorder(border2);

            Minibox3.add(Minibox1);
            Minibox3.add(Minibox2);

            Minibox4.add(new JLabel(" "));
            Minibox4.add(Box.createHorizontalGlue());
            Minibox4.add(button5);
            Minibox4.add(Box.createHorizontalGlue());
            Minibox4.add(new JLabel(" "));
            Minibox4.setBorder(border3);

            MiniMegaBox.add(Minibox3);
            MiniMegaBox.add(Minibox4);

            pFrame.add(MiniMegaBox);

            pFrame.setVisible(true);
            this.setVisible(false);

            button5.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {

                    if (e.getSource() == button5) {

                        Border spaceBorder1 = BorderFactory.createEmptyBorder(
                                45, 45, 15, 45);
                        Border spaceBorder2 = BorderFactory.createEmptyBorder(
                                15, 45, 30, 45);
                        Border spaceBorder3 = BorderFactory.createEmptyBorder(
                                5, 15, 5, 0);
                        Border spaceBorder4 = BorderFactory.createEmptyBorder(
                                5, 0, 10, 10);
                        Border spaceborder5 = BorderFactory.createEmptyBorder(
                                0, 0, 15, 0);
                        Border spaceborder6 = BorderFactory.createEmptyBorder(
                                15, 0, 0, 0);

                        JFrame gFrame = new JFrame();
                        gFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                        gFrame.setTitle("Bottom Out!");
                        gFrame.setResizable(false);
                        gFrame.setLocation(500, 125);
                        gFrame.setSize(350, 421);

                        TitleLabel = new JLabel("BOTTOM OUT");
                        TitleLabel.setFont(new Font("Times New Roman",
                                Font.BOLD, 20));
                        TitleLabel.setAlignmentY(1);
                        box23 = Box.createHorizontalBox();
                        box23.add(TitleLabel);
                        box23.setBorder(spaceborder6);

                        box12 = Box.createHorizontalBox();
                        box12.setBorder(spaceBorder1);
                        box13 = Box.createHorizontalBox();
                        box13.setBorder(spaceBorder2);
                        box14 = Box.createHorizontalBox();
                        box14.setBorder(spaceborder5);

                        box15 = Box.createVerticalBox();

                        box16 = Box.createHorizontalBox();
                        box16.setBorder(spaceBorder3);
                        box17 = Box.createHorizontalBox();
                        box17.setBorder(spaceBorder3);
                        box18 = Box.createHorizontalBox();
                        box18.setBorder(spaceBorder3);
                        box19 = Box.createHorizontalBox();
                        box19.setBorder(spaceBorder3);
                        box20 = Box.createHorizontalBox();
                        box20.setBorder(spaceBorder3);
                        box21 = Box.createHorizontalBox();
                        box21.setBorder(spaceBorder4);

                        box22 = Box.createVerticalBox();

                        MegaBox2 = Box.createVerticalBox();

                        JLabel Player1, Player2, P1Score, P2Score;

                        JButton P1Roll, P2Roll, EndTurn;

                        JLabel TurnNum, TurnMax, TurnsRem, P1TScore, P2TScore, Winner;

                        Player1 = new JLabel(NameBox1.getText() + ":");
                        P1Score = new JLabel("Score");
                        P1Roll = new JButton("Roll!");

                        Player2 = new JLabel(NameBox2.getText() + ":");
                        P2Score = new JLabel("Score");
                        P2Roll = new JButton("Roll!");

                        EndTurn = new JButton("End Turn");

                        TurnNum = new JLabel("Turn Number: ");
                        TurnMax = new JLabel("Turn max: ");
                        TurnsRem = new JLabel("Turns left: ");
                        P1TScore = new JLabel("Player 1 Score: ");
                        P2TScore = new JLabel("Player 2 Score: ");
                        Winner = new JLabel("Player is Winning");

                        box12.add(Player1);
                        box12.add(Box.createHorizontalGlue());
                        box12.add(P1Score);
                        box12.add(Box.createHorizontalGlue());
                        box12.add(P1Roll);

                        box13.add(Player2);
                        box13.add(Box.createHorizontalGlue());
                        box13.add(P2Score);
                        box13.add(Box.createHorizontalGlue());
                        box13.add(P2Roll);

                        box14.add(new JLabel(" "));
                        box14.add(Box.createHorizontalGlue());
                        box14.add(EndTurn);
                        box14.add(Box.createHorizontalGlue());
                        box14.add(new JLabel(" "));

                        box15.add(box23);
                        box15.add(box12);
                        box15.add(box13);
                        box15.add(box14);

                        box16.add(TurnNum);
                        box16.add(Box.createHorizontalGlue());
                        box16.add(new JLabel(" "));
                        box17.add(TurnMax);
                        box17.add(Box.createHorizontalGlue());
                        box17.add(new JLabel(" "));
                        box18.add(TurnsRem);
                        box18.add(Box.createHorizontalGlue());
                        box18.add(new JLabel(" "));
                        box19.add(P1TScore);
                        box19.add(Box.createHorizontalGlue());
                        box19.add(new JLabel(" "));
                        box20.add(P2TScore);
                        box20.add(Box.createHorizontalGlue());
                        box20.add(new JLabel(" "));
                        box21.add(new JLabel(" "));
                        box21.add(Box.createHorizontalGlue());
                        box21.add(Winner);

                        box22.add(box16);
                        box22.add(box17);
                        box22.add(box18);
                        box22.add(box19);
                        box22.add(box20);
                        box22.add(box21);

                        MegaBox2.add(box15);
                        MegaBox2.add(box22);

                        gFrame.add(MegaBox2);

                        gFrame.setVisible(true);
                        pFrame.setVisible(false);

P1Roll.addActionListener(new ActionListener(){ public void ActionPerformed(ActionEvent e){

}

@Override
public void actionPerformed(ActionEvent e) {

    int turnNum;

    for(turnNum; numTurns > 0 ; numTurns -- ){

    }




}});

                    }
                }
            });
        }


}}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T03:59:32+00:00Added an answer on May 23, 2026 at 3:59 am

    From an initial reading of the code, it appears you’re creating the anonymous ActionListener with incorrect syntax.

    P1Roll.addActionListener(new ActionListener(){ public void ActionPerformed(ActionEvent e){
    
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
    
        int turnNum;
    
        for(turnNum; numTurns > 0 ; numTurns -- ){
    
        }
    
    
    
    
    }});
    

    Should be

    P1Roll.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e)
    {
        int turnNum;
        for(turnNum; numTurns > 0 ; numTurns -- )
        {
    
        }
    }); 
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This has been a problem that I haven't been able to figure out for
The problem that I am having has to do with the need to keep
I had a problem that was partially solved. To explain it quickly : I
I'm making another Pong clone using HTML5 canvas and JavaScript. The problem I'm having
One problem that I come across regularly and yet don't have a solution to
A problem that we need to solve regularly at my workplace is how to
I have a problem that confuses my users, being that although an item is
I have the problem that an specific step in Ant can only be executed
I am having the problem that I cannot select a specific XML node which
He're an interesting problem that looks for the most Pythonic solution. Suppose I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.