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 6153855
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T20:09:44+00:00 2026-05-23T20:09:44+00:00

I am working on a program that is a projectile motion simulation with a

  • 0

I am working on a program that is a projectile motion simulation with a user interface. I am getting a StackOverflow error and it seems to occur where I try to create my action listeners for my buttons and text fields. I understand that a stackoverflow error relates to recursion that never exits but I am not seeing in my code where that is taking place.

I decided to use threads in my program because the time consuming activities that I have slow down the program. So I have a thread that handles all the computations for the simulation.

The code is lengthy, but here is the structure of it.

 public class SimulationGUI implements ActionListener, Runnable
 {
      //Create object references for window, panels, text fields, buttons, and labels. 

      SimulationGUI() 
      {
           //Here I instantiate all my buttons, textfields, labels, 
           //and basically set up the user interface.

           createListeners(); //This calls a method that creates my action listeners
      }   

      public void actionPerformed(ActionEvent e)
       {
           Thread thread = new Thread(this);
           thread.start();  // this calls the method run()
      }

      public void run()
      {
           //Here, I get the text for the variables  
           //calculations are performed for the projectile motion
           //I also edit three top level text fields using .setText()
      } 

      public void createListeners()
      {
           //Add action listeners for each text field
           ActionListener angleList = new SimulationGUI(); 
           angleText.addActionListener(angleList); 

           ..... 
      } 

      public static void main(String[] args)
      {
           new SimulationGUI(); 
      }

 }

My guess it that I will have to create and add the action listeners in a new thread, but I am not entirely sure.
Here are the errors that I am getting:

 Exception in thread "main" java.lang.StackOverflowError
     at java.awt.Insets.<init>(Unknown Source)
     at sun.awt.windows.WToolkit.getScreenInsets(Native Method)
     at sun.awt.windows.WToolkit.getScreenInsets(Unknown Source)
     at java.awt.Window.init(Unknown Source)
     at java.awt.Window.<init>(Unknown Source)
     at java.awt.Frame.<init>(Unknown Source)
     at javax.swing.JFrame.<init>(Unknown Source)
     at SimulationGUI.<init>(SimulationGUI.java:24)
     at SimulationGUI.createListeners(SimulationGUI.java:211)
     at SimulationGUI.<init>(SimulationGUI.java:124)
     at SimulationGUI.createListeners(SimulationGUI.java:211)
     at SimulationGUI.<init>(SimulationGUI.java:124)
     at SimulationGUI.createListeners(SimulationGUI.java:211)
     at SimulationGUI.<init>(SimulationGUI.java:124)
     at SimulationGUI.createListeners(SimulationGUI.java:211)
     at SimulationGUI.<init>(SimulationGUI.java:124)
     at SimulationGUI.createListeners(SimulationGUI.java:211)
     at SimulationGUI.<init>(SimulationGUI.java:124)
     at SimulationGUI.createListeners(SimulationGUI.java:211)
     at SimulationGUI.<init>(SimulationGUI.java:124)
     at SimulationGUI.createListeners(SimulationGUI.java:211)
 .....
  • 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-23T20:09:46+00:00Added an answer on May 23, 2026 at 8:09 pm

    Yep, you’ve got yourself an infinite loop alright. This is the part of the code that is causing the problem:

    SimulationGUI() 
    {
        createListeners();
    }
    
    public void createListeners()
    {
        ActionListener angleList = new SimulationGUI();
        angleText.addActionListener(angleList);
    }
    

    See what’s wrong? Both of these methods call each-other unconditionally and will do so for the rest of time (or at-least until the stack is full). The evidence is in the stack trace:

    at SimulationGUI.<init>(SimulationGUI.java:24)
    at SimulationGUI.createListeners(SimulationGUI.java:211)
    at SimulationGUI.<init>(SimulationGUI.java:124)
    at SimulationGUI.createListeners(SimulationGUI.java:211)
    at SimulationGUI.<init>(SimulationGUI.java:124)
    at SimulationGUI.createListeners(SimulationGUI.java:211)
    at SimulationGUI.<init>(SimulationGUI.java:124)
    at SimulationGUI.createListeners(SimulationGUI.java:211)
    at SimulationGUI.<init>(SimulationGUI.java:124)
    at SimulationGUI.createListeners(SimulationGUI.java:211)
    at SimulationGUI.<init>(SimulationGUI.java:124)
    at SimulationGUI.createListeners(SimulationGUI.java:211)
    at SimulationGUI.<init>(SimulationGUI.java:124)
    at SimulationGUI.createListeners(SimulationGUI.java:211)
    

    See how the methods go back and fourth calling each-other? You probably want something more like this:

    SimulationGUI() 
    {
        createListeners();
    }
    
    public void createListeners()
    {
        angleText.addActionListener(this);
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm working on a program that uses HTML/CSS/Javascript/JQuery for its user interface. One of
I am working on a program that needs to create a multiple temporary folders
I'm working on a program that requires the user to input an integer. How
I'm working on a program that processes many requests, none of them reaching more
I'm working on a program that searches entire drives for a given file. At
I'm working on a program that uses PHP's internal array pointers to iterate along
I'm working on a program that will tell what level a programmer is at
I am working on a program that encodes a file based on a supplied
I'm working on a program that will sort files based on extension I currently
I'm working on a program that reads in users input as a string, which

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.