将 JMenuBar 添加到 JPanel 中?
我有一个 JMenuBar 和一个 JPanel。我想将 JMenuBar 添加到 JPanel。我该怎么做呢?
I've got a JMenuBar and a JPanel. I'd like to add the JMenuBar to the JPanel. How would I do so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以为您的 JPanel 使用 BorderLayout 和将 JMenuBar 放入面板的北部区域,其中
JMenuBar 是一个 JComponent,可以像任何其他 JComponent 一样添加到 Container。
You can use a BorderLayout for your JPanel and put the JMenuBar into the NORTH area of the panel with
JMenuBar is a JComponent and can be added to a Container like any other JComponent.
使用 setJMenuBar 方法将 JMenuBar 设置为 JFrame。
请参阅以下教程了解如何使用它们。
http://download.oracle.com/javase/tutorial/uiswing/components /menu.html
JMenuBars are set to the JFrame using the setJMenuBar method.
See the following tutorial on how to use them.
http://download.oracle.com/javase/tutorial/uiswing/components/menu.html
我有另一个解决方案,尽管您必须在 NetBeans 的“其他组件”中添加 JMenuBar(足够好)。创建一个 JPanel,然后在其中添加另一个 JPanel(称为子级),以填充整个外部 JPanel。将控件放置在子面板中。然后添加 JMenuBar,但 NetBeans 会将其放置在“其他组件”中。编辑您的源代码,并在 ctor 中调用“initComponents”后调用此函数:
例如,您的 ctor 可能如下所示:
Works for me。通过查看 JInternalFrame 源代码得到了这个想法。它所做的就是将子 JPanel 替换为 JRootPane(),然后将子 JPanel 放入根窗格的内容窗格中。
I have another solution, although you have to add the JMenuBar in the "Other Components" in NetBeans (good enough). Create a JPanel and then add another JPanel inside (call it child) that fills the entire outter JPanel. Place your controls in the child panel. Then add the JMenuBar but NetBeans will place it in the "Other Components". Edit your source and in the ctor after it calls "initComponents" place a call to this function:
For example, your ctor might look like this:
Works for me. Got the idea by looking at JInternalFrame source code. All it does is replace the child JPanel with a JRootPane() and then put the child into the root pane's content pane.
我也尝试过,但带有
Jmenu
和JmenuBar
的JMenuItem
未添加到JPanel
中。但是,如果将 JFrame 的布局声明为 null,然后在 JMenuBar 上使用 setBounds(x, y, width, height) ,您就会有这种感觉实例然后将菜单栏添加到
JFrame
中。I tried too but
JMenuItem
withJmenu
andJmenuBar
was not added toJPanel
.But you can get that feel if you declare
JFrame
's layout as null then usesetBounds(x, y, width, height)
onJMenuBar
instance then add the menu bar toJFrame
.尝试在面板上放置一个 jDesktopPane,然后向其中添加一个菜单栏。我在下面的示例中使用了选项卡式窗格,但它对于面板应该具有相同的作用。
Try putting a jDesktopPane on your panel and then add a menubar to that. I'm using a tabbed pane in my example below, but it should work the same for a panel.