我创建了一个包含 JMenuBar
的窗口,当我单击 JMenuBar
中的菜单时,我想打开另一个容器(通过调用一个新类来分隔每个容器按类别)。但我不知道该怎么做。
实际上我重置了当前容器并在上面添加了项目...
public void mousePressed(MouseEvent arg0)
{
if(arg0.getSource()==login)
{
cont.removeAll();
MenuLogin menu= new MenuLogin();
cont.add(menu);
cont.repaint();
Window.this.setVisible(true);
}
}
但这不是我想要的
最佳答案
"I want to open another container when I click on a menu from my JMenuBar"
不要将
MouseListener
用于JMenu
。要么使用MenuListener
或者只是将JMenuItem
添加到JMenu
并为其使用ActionListener
。当您想要向容器中删除和添加组件时,您需要使用
revalidate()
以及repaint()
。首先重新验证。不要删除所有面板并添加新面板,而是考虑使用
CardLayout
,它允许您交换 View 。查看更多How to Use CardLayout
查看更多信息 How to Use Menus
关于java - 通过单击 JMenuBar 打开新容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22593902/