javajmenubar分布在窗口的整个宽度上

slmsl1lt  于 2021-06-26  发布在  Java
关注(0)|答案(2)|浏览(337)

我想创建一个非常简单的jmenubar,其中包含2个可单击的jmenuitems,代码如下:

  1. JFrame window = new JFrame();
  2. JMenuBar bar = new JMenuBar();
  3. JMenuItem open = new JMenuItem("Open"), reload = new JMenuItem("Reload");
  4. bar.add(open);
  5. bar.add(reload);
  6. window.setJMenuBar(bar);
  7. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  8. window.pack();
  9. window.setVisible(true);

然而,这两个项目之间有一个巨大的空间,我不知道这是从哪里来的:

我希望“重新加载”项就在“打开”项的旁边。
这是运行的代码的第一部分(后面紧接着有一个断点),因此其他任何东西都不能干扰它。
我有什么明显的缺失吗?

xytpbqjk

xytpbqjk1#

关键是我不想创建菜单,
嗯,菜单被设计成点击,然后显示一个带有菜单项的弹出窗口。
如果你想直接点击一个按钮,那么使用 JToolBar . 阅读swing教程中有关如何使用工具栏的部分,了解更多信息和工作示例。

i7uq4tfw

i7uq4tfw2#

你可能会混淆 JMenu 以及 JMenuItem . 我建议你看看这个文档教程,它将有助于理解不同对象之间的差异。
要做我理解的你想做的事情,你应该使用以下方法:

  1. JFrame window = new JFrame();
  2. JMenuBar bar = new JMenuBar();
  3. JMenu open = new JMenu("Open"), reload = new JMenu("Reload");
  4. bar.add(open);
  5. bar.add(reload);
  6. ...

如果我崩溃了而你想创造一个 JMenu 有两个 JMenuItems 您可以轻松地执行以下操作:

  1. JFrame window = new JFrame();
  2. JMenuBar bar = new JMenuBar();
  3. JMenu menu = new JMenu("A menu"); // creating a menu to hold the two items
  4. JMenuItem open = new JMenuItem("Open"), reload = new JMenuItem("Reload");
  5. menu.add(open);
  6. menu.add(reload);
  7. ...
展开查看全部

相关问题