JPanel java没有显示出来

时间:2013-11-27 21:22:35

标签: java swing jframe

我试图得到它,以便当我点击菜单选项时,窗口从“欢迎文本”变为4个按钮,然后用户可以单击这些按钮。但是,当我点击模拟按钮时,没有任何反应......窗口根本没有变化。顺便说一句,我总结了我的代码到基本的东西。任何人都看不到我的意思吗?

 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);

1 个答案:

答案 0 :(得分:2)

在接下来的情况下看到您的问题,您在显示时向JFrame(thePanel)添加了一个新面板(GUI),但在这种情况下您必须调用revalidate()方法JFrameGUI)。

GUI.revalidate()之后添加GUI.add(thePanel);,它可以帮助您。