Home > Software engineering >  My content pane show only white even if it has components on it
My content pane show only white even if it has components on it

Time:11-29

I'm doing this as a challenge for myself. My problem is that when I click on the button, the content pane appears plain even if the JPanel has components in it.

I've tried adding the components on the frame but I get an error: >Cannot read field "parent" because "comp" is null.

I've tried other layout on JFrame and JPanel and still it didn't show.

Here's the full code:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;

public class test implements ActionListener{

    public static void main(String [] args) {
        new test();
    }
    static JPanel mainPanel, cubePanel;
    static JFrame frame;
    static Container container = new Container();
    static JLabel calculatorFor;
    static JButton sphereButton, rightCylinderButton, rightConeButton, rectangularPrismButton, triangularPrismButton,
            cubeButton, squarePyramidButton, rectangularPyramidButton, ellipsoidButton, tetrahedronButton ,backToPreviousFrameButton;
    static Font font = new Font(null, Font.PLAIN, 30);
    static JLabel enterValueForEdge;
    static JTextField edgeTextField;
    static JTextArea surfaceAreaTextArea, surfaceAreaFormulaTextArea, surfaceAreaSolutionTextArea;
    static JButton calculateButton;
    static double edge;
    static DecimalFormat surfaceAreaDecimal;
    public test(){
        frame = new JFrame("Calculating for Surface Area");

        calculatorFor = new JLabel("Calculator for the Surface Area of:");
        calculatorFor.setSize(600, 40);
        calculatorFor.setLocation(100, 50);
        calculatorFor.setFont(font);
        calculatorFor.setFocusable(false);

        sphereButton = new JButton("Sphere ");
        sphereButton.setSize(400, 40);
        sphereButton.setLocation(100, 100);
        sphereButton.setFont(font);
        sphereButton.addActionListener(this);
        sphereButton.setFocusable(false);

        rightCylinderButton = new JButton("Right Cylinder");
        rightCylinderButton.setSize(400, 40);
        rightCylinderButton.setLocation(100, 150);
        rightCylinderButton.setFont(font);
        rightCylinderButton.addActionListener(this);
        rightCylinderButton.setFocusable(false);

        rightConeButton = new JButton("Right Cone");
        rightConeButton.setSize(400, 40);
        rightConeButton.setLocation(100, 200);
        rightConeButton.setFont(font);
        rightConeButton.addActionListener(this);
        rightConeButton.setFocusable(false);

        rectangularPrismButton = new JButton("Rectangular Prism");
        rectangularPrismButton.setSize(400, 40);
        rectangularPrismButton.setLocation(100, 250);
        rectangularPrismButton.setFont(font);
        rectangularPrismButton.addActionListener(this);
        rectangularPrismButton.setFocusable(false);

        triangularPrismButton = new JButton("Triangular Prism");
        triangularPrismButton.setSize(400, 40);
        triangularPrismButton.setLocation(100, 300);
        triangularPrismButton.setFont(font);
        triangularPrismButton.addActionListener(this);
        triangularPrismButton.setFocusable(false);

        cubeButton = new JButton("Cube");
        cubeButton.setSize(400, 40);
        cubeButton.setLocation(100, 350);
        cubeButton.setFont(font);
        cubeButton.addActionListener(this);
        cubeButton.setFocusable(false);

        squarePyramidButton = new JButton("Square Pyramid");
        squarePyramidButton.setSize(400, 40);
        squarePyramidButton.setLocation(100, 400);
        squarePyramidButton.setFont(font);
        squarePyramidButton.addActionListener(this);
        squarePyramidButton.setFocusable(false);

        rectangularPyramidButton = new JButton("Rectangular Pyramid");
        rectangularPyramidButton.setSize(400, 40);
        rectangularPyramidButton.setLocation(100, 450);
        rectangularPyramidButton.setFont(font);
        rectangularPyramidButton.addActionListener(this);
        rectangularPyramidButton.setFocusable(false);

        ellipsoidButton = new JButton("Ellipsoid");
        ellipsoidButton.setSize(400, 40);
        ellipsoidButton.setLocation(100, 500);
        ellipsoidButton.setFont(font);
        ellipsoidButton.addActionListener(this);
        ellipsoidButton.setFocusable(false);

        tetrahedronButton = new JButton("Tetrahedron");
        tetrahedronButton.setSize(400, 40);
        tetrahedronButton.setLocation(100, 550);
        tetrahedronButton.setFont(font);
        tetrahedronButton.addActionListener(this);
        tetrahedronButton.setFocusable(false);

        backToPreviousFrameButton = new JButton("Back");
        backToPreviousFrameButton.setSize(100, 40);
        backToPreviousFrameButton.setLocation(900, 600);
        backToPreviousFrameButton.setFont(font);
        backToPreviousFrameButton.addActionListener(this);
        backToPreviousFrameButton.setFocusable(false);

        mainPanel = new JPanel();
        mainPanel.setBounds(0, 0, 1080, 720);
        mainPanel.setLayout(null);
        mainPanel.setBackground(Color.decode("#FAF7FC"));

        mainPanel.add(calculatorFor);
        mainPanel.add(sphereButton);
        mainPanel.add(rightCylinderButton);
        mainPanel.add(rightConeButton);
        mainPanel.add(rectangularPrismButton);
        mainPanel.add(triangularPrismButton);
        mainPanel.add(cubeButton);
        mainPanel.add(squarePyramidButton);
        mainPanel.add(rectangularPyramidButton);
        mainPanel.add(ellipsoidButton);
        mainPanel.add(tetrahedronButton);
        mainPanel.add(backToPreviousFrameButton);

        frame.getContentPane().add(mainPanel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setBackground(Color.decode("#FAF7FC"));
        frame.setLayout(new BorderLayout());
        frame.setSize(1080,720);
        frame.setResizable(false);
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
    }

    public void cubePanel(){

        enterValueForEdge = new JLabel("Enter Edge:");
        enterValueForEdge.setSize(200, 40);
        enterValueForEdge.setLocation(100, 50);
        enterValueForEdge.setFont(font);
        enterValueForEdge.setFocusable(false);

        edgeTextField = new JTextField();
        edgeTextField.setSize(400, 40);
        edgeTextField.setLocation(300, 50);
        edgeTextField.setFont(font);

        calculateButton = new JButton("Calculate");
        calculateButton.setSize(200, 40);
        calculateButton.setLocation(100, 100);
        calculateButton.setFont(font);
        calculateButton.addActionListener(this);
        calculateButton.setFocusable(false);

        surfaceAreaFormulaTextArea = new JTextArea("SA = 6a²");
        surfaceAreaFormulaTextArea.setSize(400, 40);
        surfaceAreaFormulaTextArea.setLocation(100, 150);
        surfaceAreaFormulaTextArea.setFont(font);
        surfaceAreaFormulaTextArea.setEditable(false);

        surfaceAreaTextArea = new JTextArea("SA: ");
        surfaceAreaTextArea.setSize(500, 40);
        surfaceAreaTextArea.setLocation(100, 200);
        surfaceAreaTextArea.setFont(font);
        surfaceAreaTextArea.setEditable(false);

        surfaceAreaSolutionTextArea = new JTextArea();
        surfaceAreaSolutionTextArea.setSize(900, 80);
        surfaceAreaSolutionTextArea.setLocation(100, 250);
        surfaceAreaSolutionTextArea.setFont(font);
        surfaceAreaSolutionTextArea.setEditable(false);
        surfaceAreaSolutionTextArea.setLineWrap(true);

        backToPreviousFrameButton = new JButton("Back");
        backToPreviousFrameButton.setSize(100, 40);
        backToPreviousFrameButton.setLocation(900, 600);
        backToPreviousFrameButton.setFont(font);
        backToPreviousFrameButton.addActionListener(this);
        backToPreviousFrameButton.setFocusable(false);

        cubePanel = new JPanel();
        cubePanel.setBounds(0, 0, 1080, 720);
        cubePanel.setLayout(null);
        cubePanel.setBackground(Color.decode("#FAF7FC"));

        container = new Container();

        cubePanel.add(enterValueForEdge);
        cubePanel.add(edgeTextField);
        cubePanel.add(calculateButton);
        cubePanel.add(surfaceAreaFormulaTextArea);
        cubePanel.add(surfaceAreaTextArea);
        cubePanel.add(surfaceAreaSolutionTextArea);
        cubePanel.add(backToPreviousFrameButton);

        container.add(cubePanel);
        container.setLayout(null);
        container.setBackground(Color.decode("#FAF7FH"));
    }

    @Override
    public void actionPerformed(ActionEvent e) {

        if(e.getSource() == sphereButton){
            new sphereFrame();
            frame.dispose();
        }

        if(e.getSource() == rightCylinderButton){
            new rightCylinderFrame();
            frame.dispose();
        }

        if(e.getSource() == rightConeButton){
            new rightConeFrame();
            frame.dispose();
        }

        if(e.getSource() == rectangularPrismButton){
            new rectangularPrismFrame();
            frame.dispose();
        }

        if(e.getSource() == triangularPrismButton){
            new triangularPrismFrame();
            frame.dispose();
        }

       if(e.getSource() == cubeButton){
            frame.getContentPane().removeAll();
            frame.add(cubePanel);
            frame.repaint();
            frame.revalidate();
            System.out.println("Remove");
            frame.getContentPane().add(container);
       }
}

CodePudding user response:

Oracle has a helpful tutorial, Start

Press the "Cube" button to bring up the page for the cube calculation.

Cube calculation

All Swing applications must start with a call to the SwingUtilities invokeLater method. This method ensures that the Swing components are created and executed on the Event Dispatch Thread.

The JFrame has a default BorderLayout and holds the main JPanel. The main JPanel uses a CardLayout to display the various calculation JPanels. Using a CardLayout is much easier than managing multiple JFrames and provides a nicer user experience.

I used Swing layout managers to position the Swing components on the various JPanels.

The start JPanel consists of two subordinate JPanels. The title JPanel uses a FlowLayout to display the title. The button JPanel uses a GridLayout to display the various calculation JButtons. You can create complex JPanels by nesting multiple simple JPanels.

The cube calculation JPanel was the only one you had in your code, so it was the only one I created. I made it a method, but you can create a separate class for each of the calculations. The cube calculation JPanel uses a GridBagLayout to create a form-like JPanel. I used lambda expressions to create the ActionListener for each of the JButtons, since they were so simple.

I made the start JPanel button ActionListener a separate class just to get the code away from the for loop that creates the JButtons.

Here's the complete runnable code.

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class CardLayoutGUI implements Runnable {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new CardLayoutGUI());
    }

    private CardLayout cardLayout;

    private JTextField edgeTextField, surfaceAreaSolutionTextField;

    private JPanel mainPanel;

    @Override
    public void run() {
        JFrame frame = new JFrame("Calculating for Surface Area");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.mainPanel = createMainPanel();
        frame.add(mainPanel, BorderLayout.CENTER);

        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    private JPanel createMainPanel() {
        cardLayout = new CardLayout();
        JPanel panel = new JPanel(cardLayout);
        panel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));

        panel.add(createStartPanel(), "Start");
        panel.add(createCubeCalculationPanel(), "Cube");

        return panel;
    }

    private JPanel createStartPanel() {
        JPanel panel = new JPanel(new BorderLayout());
        panel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));

        panel.add(createTitlePanel(), BorderLayout.NORTH);
        panel.add(createButtonPanel(), BorderLayout.CENTER);

        return panel;
    }

    private JPanel createTitlePanel() {
        JPanel panel = new JPanel(new FlowLayout());
        panel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));
        Font font = new Font(Font.DIALOG, Font.PLAIN, 36);

        JLabel label = new JLabel("Calculator for the Surface Area of:");
        label.setFont(font);
        panel.add(label);

        return panel;
    }

    private JPanel createButtonPanel() {
        String[] text = { "Sphere", "Right Cylinder", "Right Cone",
                "Rectangular Prism", "Triangular Prism", "Cube",
                "Square Pyramid", "Rectangular Pyramid", "Ellipsoid",
                "Tetrahedron" };
        JPanel panel = new JPanel(new GridLayout(0, 3, 5, 5));
        panel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));
        Font font = new Font(null, Font.PLAIN, 24);
        ButtonListener listener = new ButtonListener();

        for (String s : text) {
            JButton button = new JButton(s);
            button.addActionListener(listener);
            button.setFont(font);
            panel.add(button);
        }

        return panel;
    }

    private JPanel createCubeCalculationPanel() {
        JPanel panel = new JPanel(new GridBagLayout());
        panel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));
        Font titleFont = new Font(null, Font.PLAIN, 32);
        Font font = new Font(null, Font.PLAIN, 16);

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.anchor = GridBagConstraints.LINE_START;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.insets = new Insets(0, 5, 5, 5);
        gbc.weighty = 1.0;

        gbc.gridwidth = 2;
        gbc.gridx = 0;
        gbc.gridy = 0;
        JLabel label = new JLabel("SA = 6a²");
        label.setFont(titleFont);
        panel.add(label, gbc);

        gbc.gridwidth = 1;
        gbc.gridy  ;
        label = new JLabel("Edge:");
        label.setFont(font);
        panel.add(label, gbc);

        gbc.gridx  ;
        edgeTextField = new JTextField(10);
        edgeTextField.setFont(font);
        panel.add(edgeTextField, gbc);

        gbc.gridx = 0;
        gbc.gridy  ;
        label = new JLabel("SA:");
        label.setFont(font);
        panel.add(label, gbc);

        gbc.gridx  ;
        surfaceAreaSolutionTextField = new JTextField(10);
        surfaceAreaSolutionTextField.setFont(font);
        surfaceAreaSolutionTextField.setEditable(false);
        panel.add(surfaceAreaSolutionTextField, gbc);

        gbc.gridwidth = 2;
        gbc.gridx = 0;
        gbc.gridy  ;
        JButton calculateButton = new JButton("Calculate");
        calculateButton.addActionListener(event -> {
            double edge = Double.valueOf(edgeTextField.getText());
            double sa = 6.0 * edge * edge;
            surfaceAreaSolutionTextField.setText(Double.toString(sa));
        });
        calculateButton.setFont(font);
        panel.add(calculateButton, gbc);

        gbc.gridy  ;
        JButton backButton = new JButton("Back");
        backButton.addActionListener(event -> {
            cardLayout.show(mainPanel, "Start");
        });
        backButton.setFont(font);
        panel.add(backButton, gbc);

        return panel;
    }

    public class ButtonListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent event) {
            JButton button = (JButton) event.getSource();
            String text = button.getText();
            cardLayout.show(mainPanel, text);
        }

    }

}

CodePudding user response:

    Try this :
-----------------
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;

public class Test2 implements ActionListener {

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

    static JPanel mainPanel, cubePanel;
    static JFrame frame;
    static Container container = new Container();
    static JLabel calculatorFor;
    static JButton sphereButton, rightCylinderButton, rightConeButton, rectangularPrismButton, triangularPrismButton,
            cubeButton, squarePyramidButton, rectangularPyramidButton, ellipsoidButton, tetrahedronButton, backToPreviousFrameButton;
    static Font font = new Font(null, Font.PLAIN, 30);
    static JLabel enterValueForEdge;
    static JTextField edgeTextField;
    static JTextArea surfaceAreaTextArea, surfaceAreaFormulaTextArea, surfaceAreaSolutionTextArea;
    static JButton calculateButton;
    static double edge;
    static DecimalFormat surfaceAreaDecimal;

    public Test2() {
        frame = new JFrame("Calculating for Surface Area");

        calculatorFor = new JLabel("Calculator for the Surface Area of:");
        calculatorFor.setSize(600, 40);
        calculatorFor.setLocation(100, 50);
        calculatorFor.setFont(font);
        calculatorFor.setFocusable(false);

        sphereButton = new JButton("Sphere ");
        sphereButton.setSize(400, 40);
        sphereButton.setLocation(100, 100);
        sphereButton.setFont(font);
        sphereButton.addActionListener(this);
        sphereButton.setFocusable(false);

        rightCylinderButton = new JButton("Right Cylinder");
        rightCylinderButton.setSize(400, 40);
        rightCylinderButton.setLocation(100, 150);
        rightCylinderButton.setFont(font);
        rightCylinderButton.addActionListener(this);
        rightCylinderButton.setFocusable(false);

        rightConeButton = new JButton("Right Cone");
        rightConeButton.setSize(400, 40);
        rightConeButton.setLocation(100, 200);
        rightConeButton.setFont(font);
        rightConeButton.addActionListener(this);
        rightConeButton.setFocusable(false);

        rectangularPrismButton = new JButton("Rectangular Prism");
        rectangularPrismButton.setSize(400, 40);
        rectangularPrismButton.setLocation(100, 250);
        rectangularPrismButton.setFont(font);
        rectangularPrismButton.addActionListener(this);
        rectangularPrismButton.setFocusable(false);

        triangularPrismButton = new JButton("Triangular Prism");
        triangularPrismButton.setSize(400, 40);
        triangularPrismButton.setLocation(100, 300);
        triangularPrismButton.setFont(font);
        triangularPrismButton.addActionListener(this);
        triangularPrismButton.setFocusable(false);

        cubeButton = new JButton("Cube");
        cubeButton.setSize(400, 40);
        cubeButton.setLocation(100, 350);
        cubeButton.setFont(font);
        cubeButton.addActionListener(this);
        cubeButton.setFocusable(false);

        squarePyramidButton = new JButton("Square Pyramid");
        squarePyramidButton.setSize(400, 40);
        squarePyramidButton.setLocation(100, 400);
        squarePyramidButton.setFont(font);
        squarePyramidButton.addActionListener(this);
        squarePyramidButton.setFocusable(false);

        rectangularPyramidButton = new JButton("Rectangular Pyramid");
        rectangularPyramidButton.setSize(400, 40);
        rectangularPyramidButton.setLocation(100, 450);
        rectangularPyramidButton.setFont(font);
        rectangularPyramidButton.addActionListener(this);
        rectangularPyramidButton.setFocusable(false);

        ellipsoidButton = new JButton("Ellipsoid");
        ellipsoidButton.setSize(400, 40);
        ellipsoidButton.setLocation(100, 500);
        ellipsoidButton.setFont(font);
        ellipsoidButton.addActionListener(this);
        ellipsoidButton.setFocusable(false);

        tetrahedronButton = new JButton("Tetrahedron");
        tetrahedronButton.setSize(400, 40);
        tetrahedronButton.setLocation(100, 550);
        tetrahedronButton.setFont(font);
        tetrahedronButton.addActionListener(this);
        tetrahedronButton.setFocusable(false);

        backToPreviousFrameButton = new JButton("Back");
        backToPreviousFrameButton.setSize(100, 40);
        backToPreviousFrameButton.setLocation(900, 600);
        backToPreviousFrameButton.setFont(font);
        backToPreviousFrameButton.addActionListener(this);
        backToPreviousFrameButton.setFocusable(false);

        mainPanel = new JPanel();
        mainPanel.setBounds(0, 0, 1080, 720);
        mainPanel.setLayout(null);
        mainPanel.setBackground(Color.decode("#FAF7FC"));

        mainPanel.add(calculatorFor);
        mainPanel.add(sphereButton);
        mainPanel.add(rightCylinderButton);
        mainPanel.add(rightConeButton);
        mainPanel.add(rectangularPrismButton);
        mainPanel.add(triangularPrismButton);
        mainPanel.add(cubeButton);
        mainPanel.add(squarePyramidButton);
        mainPanel.add(rectangularPyramidButton);
        mainPanel.add(ellipsoidButton);
        mainPanel.add(tetrahedronButton);
        mainPanel.add(backToPreviousFrameButton);

        frame.getContentPane().add(mainPanel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setBackground(Color.decode("#FAF7FC"));
        frame.setLayout(new BorderLayout());
        frame.setSize(1080, 720);
        frame.setResizable(false);
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
    }

    public Container cubePanel() {

        enterValueForEdge = new JLabel("Enter Edge:");
        enterValueForEdge.setSize(200, 40);
        enterValueForEdge.setLocation(100, 50);
        enterValueForEdge.setFont(font);
        enterValueForEdge.setFocusable(false);

        edgeTextField = new JTextField();
        edgeTextField.setSize(400, 40);
        edgeTextField.setLocation(300, 50);
        edgeTextField.setFont(font);

        calculateButton = new JButton("Calculate");
        calculateButton.setSize(200, 40);
        calculateButton.setLocation(100, 100);
        calculateButton.setFont(font);
        calculateButton.addActionListener(this);
        calculateButton.setFocusable(false);

        surfaceAreaFormulaTextArea = new JTextArea("SA = 6a²");
        surfaceAreaFormulaTextArea.setSize(400, 40);
        surfaceAreaFormulaTextArea.setLocation(100, 150);
        surfaceAreaFormulaTextArea.setFont(font);
        surfaceAreaFormulaTextArea.setEditable(false);

        surfaceAreaTextArea = new JTextArea("SA: ");
        surfaceAreaTextArea.setSize(500, 40);
        surfaceAreaTextArea.setLocation(100, 200);
        surfaceAreaTextArea.setFont(font);
        surfaceAreaTextArea.setEditable(false);

        surfaceAreaSolutionTextArea = new JTextArea();
        surfaceAreaSolutionTextArea.setSize(900, 80);
        surfaceAreaSolutionTextArea.setLocation(100, 250);
        surfaceAreaSolutionTextArea.setFont(font);
        surfaceAreaSolutionTextArea.setEditable(false);
        surfaceAreaSolutionTextArea.setLineWrap(true);

        backToPreviousFrameButton = new JButton("Back");
        backToPreviousFrameButton.setSize(100, 40);
        backToPreviousFrameButton.setLocation(900, 600);
        backToPreviousFrameButton.setFont(font);
        backToPreviousFrameButton.addActionListener(this);
        backToPreviousFrameButton.setFocusable(false);

        cubePanel = new JPanel();
        cubePanel.setBounds(0, 0, 1080, 720);
        cubePanel.setLayout(null);
        cubePanel.setBackground(Color.decode("#FAF7FC"));

        container = new Container();

        cubePanel.add(enterValueForEdge);
        cubePanel.add(edgeTextField);
        cubePanel.add(calculateButton);
        cubePanel.add(surfaceAreaFormulaTextArea);
        cubePanel.add(surfaceAreaTextArea);
        cubePanel.add(surfaceAreaSolutionTextArea);
        cubePanel.add(backToPreviousFrameButton);

        container.add(cubePanel);
        container.setLayout(null);
        container.setBackground(Color.getColor("#FAF7FH"));
        return container;
    }

    @Override
    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == sphereButton) {
            new sphereFrame();
            frame.dispose();
        }

        if (e.getSource() == rightCylinderButton) {
            new rightCylinderFrame();
            frame.dispose();
        }

        if (e.getSource() == rightConeButton) {
            new rightConeFrame();
            frame.dispose();
        }

        if (e.getSource() == rectangularPrismButton) {
            new rectangularPrismFrame();
            frame.dispose();
        }

        if (e.getSource() == triangularPrismButton) {
            //new triangularPrismFrame();
            frame.dispose();
        }

        if (e.getSource() == cubeButton) {
            frame.getContentPane().removeAll();
            frame.add(cubePanel());
            frame.repaint();
            frame.revalidate();
            System.out.println("Remove");
            frame.getContentPane().add(container);
        }
    }
}
  • Related