Java JMenuBar 分布在 window 的整个宽度上
Java JMenuBar is spread over the whole width of the window
我想使用以下代码创建一个非常简单的 JMenuBar,其中包含 2 个可点击的 JMenuItem:
JFrame window = new JFrame();
JMenuBar bar = new JMenuBar();
JMenuItem open = new JMenuItem("Open"), reload = new JMenuItem("Reload");
bar.add(open);
bar.add(reload);
window.setJMenuBar(bar);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
然而,这两个项目之间有一个巨大的 space,我不知道这是从哪里来的:
我希望“重新加载”项紧挨着“打开”项。
这是运行的代码的第一部分(紧接着有一个断点),所以没有其他东西可以干扰它。
有什么东西 'obvious' 我想念的吗?
您可能对 JMenu
和 JMenuItem
感到困惑。我建议你检查一下this tutorial of the docs,这将有助于理解各种对象之间的差异。
要按照我的理解做您想做的事情,您应该使用类似的东西:
JFrame window = new JFrame();
JMenuBar bar = new JMenuBar();
JMenu open = new JMenu("Open"), reload = new JMenu("Reload");
bar.add(open);
bar.add(reload);
...
如果我崩溃了,而你打算用两个 JMenuItems
创建一个 JMenu
,你可以轻松地执行以下操作:
JFrame window = new JFrame();
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("A menu"); // creating a menu to hold the two items
JMenuItem open = new JMenuItem("Open"), reload = new JMenuItem("Reload");
menu.add(open);
menu.add(reload);
...
The point is that I don't want to create Menus,
好吧,菜单的设计目的是单击它,然后显示带有菜单项的弹出窗口。
如果您想要直接点击按钮的功能,请使用 JToolBar
。阅读有关 How to use Toolbars 的 Swing 教程部分,了解更多信息和工作示例。
我想使用以下代码创建一个非常简单的 JMenuBar,其中包含 2 个可点击的 JMenuItem:
JFrame window = new JFrame();
JMenuBar bar = new JMenuBar();
JMenuItem open = new JMenuItem("Open"), reload = new JMenuItem("Reload");
bar.add(open);
bar.add(reload);
window.setJMenuBar(bar);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
然而,这两个项目之间有一个巨大的 space,我不知道这是从哪里来的:
我希望“重新加载”项紧挨着“打开”项。
这是运行的代码的第一部分(紧接着有一个断点),所以没有其他东西可以干扰它。
有什么东西 'obvious' 我想念的吗?
您可能对 JMenu
和 JMenuItem
感到困惑。我建议你检查一下this tutorial of the docs,这将有助于理解各种对象之间的差异。
要按照我的理解做您想做的事情,您应该使用类似的东西:
JFrame window = new JFrame();
JMenuBar bar = new JMenuBar();
JMenu open = new JMenu("Open"), reload = new JMenu("Reload");
bar.add(open);
bar.add(reload);
...
如果我崩溃了,而你打算用两个 JMenuItems
创建一个 JMenu
,你可以轻松地执行以下操作:
JFrame window = new JFrame();
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("A menu"); // creating a menu to hold the two items
JMenuItem open = new JMenuItem("Open"), reload = new JMenuItem("Reload");
menu.add(open);
menu.add(reload);
...
The point is that I don't want to create Menus,
好吧,菜单的设计目的是单击它,然后显示带有菜单项的弹出窗口。
如果您想要直接点击按钮的功能,请使用 JToolBar
。阅读有关 How to use Toolbars 的 Swing 教程部分,了解更多信息和工作示例。