Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Getting errors on the following program and can\'t figure out why: import java.a

ID: 3582648 • Letter: G

Question

Getting errors on the following program and can't figure out why:

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

public class Program7 extends JFrame{
    private JRadioButton rbtnS, rbtnAll, rbtnA;
    private JCheckBox cbox;
    private JButton btnOk, btnCancel, btnSetup, btnHelp;
  
    public static void main(String[] args) {
        new Program7();
    }
  
    Program7() {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
    private void createAndShowGUI() {
        //get or create containers
        Container c = getContentPane();
        JPanel pnlNorth = new JPanel();
        JPanel pnlEast = new JPanel();
        JPanel pnlWest = new JPanel();
        JPanel pnlCenter = new JPanel();
        JPanel pnlSouth = new JPanel();
      
        //set layout managers
        c.setLayout(new BorderLayout());
        pnlNorth.setLayout(new FlowLayout());
        pnlCenter.setLayout(new GridLayout());
        pnlSouth.setLayout(new GridLayout());
        pnlEast.setLayout(new GridLayout());
        pnlWest.setLayout(new GridLayout());
      
        //create widgets
        JRadioButton rbtnS = new JRadioButton("Selection");
        JRadioButton rbtnAll = new JRadioButton("All", true);
        JRadioButton rbtnA = new JRadioButton("Applet");
        JCheckBox cboxI = new JCheckBox("Image");
        JCheckBox cboxT = new JCheckBox("Text");
        JCheckBox cboxC = new JCheckBox("Code");
        JButton btnOk = new JButton("OK");
        JButton btnCancel = new JButton("Cancel");
        JButton btnSetup = new JButton("Setup...");
        JButton btnHelp = new JButton("Help");
        ButtonGroup grp = new ButtonGroup();
        grp.add(rbtnS);
        grp.add(rbtnAll);
        grp.add(rbtnA);

        //place widgets in containers
        pnlSouth.add(rbtnS);
        pnlSouth.add(rbtnAll);
        pnlSouth.add(rbtnA);
        pnlWest.add(cboxI);
        pnlWest.add(cboxT);
        pnlWest.add(cboxC);
        pnlCenter.add(btnOk);
        pnlCenter.add(btnCancel);
        pnlCenter.add(btnSetup);
        pnlCenter.add(btnHelp);
      
        //nest conainers
        c.add(pnlNorth, BorderLayout.NORTH);
        c.add(pnlCenter, BorderLayout.CENTER);
        c.add(pnlWest, BorderLayout.WEST);
        c.add(pnlSouth, BorderLayout.SOUTH);
      
        //set GUI defaults and display
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(10, 100);
        setVisible(true);
    }
}

The errors:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding container's parent to itself
        at java.awt.Container.checkAddToSelf(Container.java:479)
        at java.awt.Container.addImpl(Container.java:1090)
        at javax.swing.AbstractButton.addImpl(AbstractButton.java:1856)
        at java.awt.Container.add(Container.java:417)
        at Program7.createAndShowGUI(Program7.java:56)
        at Program7$1.run(Program7.java:25)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Explanation / Answer

Your error is in  createAndShowGUI() function. You are trying to add one panel to itself only which is not allowed.

        c.add(pnlNorth, BorderLayout.NORTH);
        c.add(pnlCenter, BorderLayout.CENTER);
        c.add(pnlWest, BorderLayout.WEST);
        c.add(pnlSouth, BorderLayout.SOUTH);

If container is not allowing to add. try to add into JFrame.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote