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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T19:22:29+00:00 2026-05-13T19:22:29+00:00

Ok, I will post the code for the three classes as it’s not too

  • 0

Ok, I will post the code for the three classes as it’s not too long.

package guiDemonstration;

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

public class TabbedGUI {
    //create fields
    private JFrame frame;
    private JTabbedPane tabbedPane;

    //make the following three labels public for access in the GUIEngine class
    private JLabel comboLabel; 
    private JLabel sliderLabel; 
    private JLabel radioLabel; 
    private JSlider slider;
    private JComboBox combo;
    private JPanel comboPanel, sliderPanel, radioPanel;
    private String []comboArray;
    private JRadioButton radio, radio1, radio2;
    private ButtonGroup buttonGroup;

    private String comboText = "Please Make a Choice";
    private String sliderText = "Move the Slider";
    private String radioText = "Choose a Radio Button";

    //Create field to hold GUIEngine Class
    GUIEngine engine;

    // empty constructor
    public TabbedGUI(){
    }

    //method used to construct the gui
    private void makeFrame(){
        //create the Frame
        frame = new JFrame("Example of a Tabbed GUI");

        //set the initial size of the frame in pixels
        frame.setSize(500, 200);
        //add the frame to the contentPane
        Container contentPane = frame.getContentPane();

        //create an instance of the GUIEngine class
        engine = new GUIEngine();

       //create an array of size 3 to be used as dropdown values in the combobox
        comboArray = new String[3];

        //initialise the array
        comboArray[0] = "First Choice";
        comboArray[1] = "Second Choice";
        comboArray[2] = "Third Choice";

        //create instance of JComboBox and add array
        combo = new JComboBox(comboArray);

        //create instance of JSlider
        slider = new JSlider();

        //creat instance of Button Group
        // this ButtonGroup will hold the individual radio buttons
        buttonGroup = new ButtonGroup();

        radio = new JRadioButton();
        radio1 = new JRadioButton();
        radio2 = new JRadioButton();

        //create instances of JPanel
        comboPanel = new JPanel();
        sliderPanel= new JPanel();
        radioPanel = new JPanel();

        //create flowlayout for comboPanel
        comboPanel.setLayout(new FlowLayout());

        //create instances of labels
        comboLabel = new JLabel(comboText);
        sliderLabel=new JLabel(sliderText);
        radioLabel = new JLabel(radioText);

        //add radio buttons to the group
        buttonGroup.add(radio);
        buttonGroup.add(radio1);
        buttonGroup.add(radio2);

        //add a border to the button group


        //begin creation of the tabbed GUI and add to contentPane
        tabbedPane = new JTabbedPane();
        contentPane.add(tabbedPane);

        frame.add(tabbedPane);

        //add instances of JPanel to each tab
        tabbedPane.addTab("Combo Box", comboPanel);
        tabbedPane.addTab("Slider", sliderPanel);
        tabbedPane.addTab("Radio", radioPanel);

        //add components to each JPanel of each tab
        comboPanel.add(combo);
        comboPanel.add(comboLabel);
        sliderPanel.add(sliderLabel);
        radioPanel.add(radioLabel);
        sliderPanel.add(slider);
        radioPanel.add(radio);
        radioPanel.add(radio1);
        radioPanel.add(radio2);

        //set a border around the Slider
        slider.setBorder(
                BorderFactory.createMatteBorder(1, 1, 1, 1, Color.BLUE));

        // call the method to add the listeners to each component
        addListeners();

        //by default the frame is set to invisible. Set the frame to visible
        frame.setVisible(true);
    }

    /**
     * This method adds listeners to each component
     */
    public void addListeners(){

        //add actionListeners to each component

        combo.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                engine.useCombo();
            }
        });

        slider.addChangeListener(new ChangeListener(){
            public void stateChanged(ChangeEvent e){
                engine.useSlider();
            }
        });

        radio.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                engine.useRadioButtons();
            }
        });

        radio1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                engine.useRadioButtons();
            }
        });

        radio2.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                engine.useRadioButtons();
            }
        });
    }

    /*
     * The following three methods set the text for each
     * label on the three individual tabs.
     * These methods are called from the GUIEngine Class.
     */

    //set the text on the comboLabel
    public void setComboLabel(){
        String updatedComboText = (String)combo.getSelectedItem();
        comboLabel.setText(updatedComboText);
        //System.out.println("You selected" + comboText);
    }

    //set the text on the sliderLabel
    public void setSliderLabel(){
        sliderLabel.setText("You've moved the slider!");
    }

    //set the text on the radioLabel
    public void setRadioLabel(){
        System.out.println("You've selected a radio button!");
    }

    /**
     * This method is used to begin execution of the program
     */
    public void runProgram(){
        makeFrame();
    }
}

Class 2:

package guiDemonstration;

public class GUIEngine {

    TabbedGUI tg;

    //constructor
    public GUIEngine(){
        tg = new TabbedGUI();
    }

    public void useCombo(){
        //System.out.println("You Used the Combo Box");
        tg.setComboLabel();
    }

    public void useSlider(){
        tg.setSliderLabel();
    }

    public void useRadioButtons(){
        //System.out.println("You clicked a radio button");
        tg.setRadioLabel();
    }
}

And just the main method:

package guiDemonstration;

public class Controller {
    /**
     * #This is the main method where program execution begins
     * @param args
     */
    public static void main(String[] args) {
        TabbedGUI tg = new TabbedGUI();
        tg.runProgram();
    }
}

The JCombobox and JSlider cause runtime errors. The code compiles ok, but when I move the JSlider or select an item on the JComboBox, the program crashes.

Any ideas?

GF

  • 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-13T19:22:30+00:00Added an answer on May 13, 2026 at 7:22 pm

    Your GUIEngine is creating its own instance of the TabbedGUI rather than using the instance you create in your main method.

    If you need to keep the GUIEngine class around, I would suggest doing this in makeFrame

    engine = new GUIEngine(this);

    Then change the GUIEngine constructor to take in a TabbedGUI as a parameter. Might as well make the instance variable final too.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 320k
  • Answers 320k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer You will just need to look at the log and… May 14, 2026 at 12:18 am
  • Editorial Team
    Editorial Team added an answer VS2008 should generate v10 files; that's its native format version.… May 14, 2026 at 12:18 am
  • Editorial Team
    Editorial Team added an answer One thing you could do is set the current AppDomain's… May 14, 2026 at 12:18 am

Related Questions

I'm writing a multiple user log in system using PHP and MySql, the way
ok, I'm back. I totally simplified my problem to just three simple fields and
After wasting two days with this question (and trying to make it work), I've
In this post the author recommends implementing a Wrapper for the session to ease
Ok, I've asked a few related questions here and only ended up with more

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.