我正在开发一个Swing应用程序,我必须在单击菜单时创建多个菜单栏。 另外的菜单栏应该从容器中添加或移除。
我必须在菜单中使用文本上方和下方的图标,但我还没有找到合适的构造函数。
是否可以在JMenu
中设置后退和前进按钮,因为后退和前进按钮在浏览器中有效?它们应显示以前的窗口视图,最好不要显示多个显示。
答案 0 :(得分:1)
你真的是指菜单栏吗?您的按钮听起来更像是工具栏。
也就是说,JMenu
只是一种特殊的按钮,所以也许您可以从中派生出自己的自定义菜单类,以便以不同的方式绘制顶级菜单。对于main menu bar,某些平台(特别是Mac OS)可能无法处理自定义绘制代码,因为该菜单栏由本机OS代码处理。但对于第二个菜单栏,它是由秋千绘制的,我希望没有问题。毕竟,JMenuBar
只是Component
。
答案 1 :(得分:1)
如果您使用显示JToolBar
的here的多个实例,则可以将每个实例添加到CardLayout
的不同面板,显示为here。
答案 2 :(得分:0)
只需使用两个JPanel。
以下是我几分钟前为商店GUI开始编写的一些代码。
public Shop() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.NORTH);
JPanel panel_1 = new JPanel();
contentPane.add(panel_1, BorderLayout.CENTER);
{
JMenuBar menu = new JMenuBar();
final JTextField coins = new JTextField("Coins: " + TerrainDemo.money);
coins.setForeground(Color.red);
menu.add(coins);
panel.add(menu);
}
{
JMenuBar menu = new JMenuBar();
final JTextField coins = new JTextField("Coins: " + TerrainDemo.money);
coins.setForeground(Color.red);
menu.add(coins);
panel_1.add(menu);
}
}
结果是: