我试图得到它,以便当我点击菜单选项时,窗口从“欢迎文本”变为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);
答案 0 :(得分:2)
在接下来的情况下看到您的问题,您在显示时向JFrame(thePanel
)添加了一个新面板(GUI
),但在这种情况下您必须调用revalidate()
方法JFrame
(GUI
)。
在GUI.revalidate()
之后添加GUI.add(thePanel);
,它可以帮助您。