4

我正在开发一个 Swing 应用程序,我必须在单击菜单时创建多个菜单栏。应该从容器中添加或删除另一个菜单栏。

我必须在菜单中的文本上方和下方使用一个图标,但我还没有找到合适的构造函数。

是否可以有一个后退和前进按钮JMenu应该像浏览器中的后退和前进按钮一样工作?它们应该显示窗口的前一个视图,最好没有多个显示。

4

3 回答 3

1

你真的是说菜单栏吗?你的按钮听起来更像是一个工具栏的东西。

也就是说,aJMenu只是一种特殊的按钮,所以也许您可以从中派生自己的自定义菜单类,以便以不同的方式绘制顶级菜单。对于主菜单栏,某些平台(尤其是 Mac OS)可能不会处理自定义绘画代码,因为该菜单栏由本机 OS 代码处理。但是对于第二个由 swing 绘制的菜单栏,我希望没有问题。毕竟, aJMenuBar只是一个Component.

于 2012-09-28T08:00:31.697 回答
1

如果您使用此处JToolBar所示的多个实例,您可以将每个实例添加到此处所示的不同面板中。CardLayout

于 2012-09-28T12:16:23.027 回答
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);
    }
}

结果是:

在此处输入图像描述

于 2014-07-16T17:49:38.660 回答