user2964762
user2964762

Reputation: 93

JPanel java not showing up

Im trying to get it so that when i click on a menu option, the windows changes from the 'welcome text' to 4 buttons which the user can then click on. However, when i click on the simulation button, nothing happens.. the window doesnt change at all.. Ive summarized my code to the basic stuff by the way. anyone see anything i cant?

 JFrame GUI = new JFrame("Graphical User Interface");
public gui()
    {
    JMenuBar menubar = new JMenuBar();
    JMenu Simulation = new JMenu("Simulation");

    theLabel = new JLabel("Welcome to the Main Menu. ",JLabel.CENTER);
    GUI.add(theLabel);

    menubar.add(Simulation);
    Simulation.add(Simulationmenu);

    Simulationmenu.addActionListener(this);

    GUI.setJMenuBar(menubar);
    GUI.setLocation(500,250);
    GUI.setSize(300, 200);
    GUI.setVisible(true);
    }

    public void actionPerformed(ActionEvent E){

 if(E.getSource() == Simulationmenu){
    // Buttons in the menu i want to output once clicked on 'simulation'
                thePanel = new JPanel(new GridLayout(4,0));

                Run = new JButton("Run");
                Pause = new JButton("Pause");
                Reset = new JButton("Reset");
                DisplayMaps = new JButton("Display Maps?");

                // Add the components to the panel:
                thePanel.add("West", Run);
                thePanel.add("Center", Pause);
                thePanel.add("East", Reset); 
                thePanel.add("West", DisplayMaps);

                // Add the panel to the contentPane of the frame:
                GUI.add(thePanel);

                // add this object as listener to the two buttons:
                Run.addActionListener(this);

Upvotes: 0

Views: 194

Answers (1)

alex2410
alex2410

Reputation: 10994

Seems your problem in next, you add a new panel(thePanel) to your JFrame(GUI) when it is showing, but in this case you must to call revalidate() method of JFrame(GUI).

Add GUI.revalidate() after GUI.add(thePanel);, it helps you.

Upvotes: 2

Related Questions