问题标签 [jmenubar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1362 浏览

java - 在 Swing 中创建多个带有图标的菜单栏

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

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

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

0 投票
2 回答
1075 浏览

java - Java JDialog 搞砸了 Mac 上的 JMenuBar

我对 JMenuBar 有一些问题,我似乎无法弄清楚。

我将从简化问题开始:该程序由一个 JFrame、一个 JDialog 和一个 JMenuBar 组成。最初,您将看到顶部带有 JMenuBar 的 JFrame。但是在某些时候,JDialog 会弹出,用户可以在其中填写一些文本字段。我遇到的问题是,一旦焦点转到 JDialog,JMenuBar 就会消失。我想要的是 JMenuBar 一直停留在屏幕顶部,除非整个程序不在焦点上。这是 2 个屏幕截图,在第一个屏幕截图中,选择了 JFrame,而在另一个屏幕截图中选择了 JDialog。

在此处输入图像描述

在此处输入图像描述

所以我真正想要的不仅仅是当焦点在 JFrame 上时才看到 JMenuBar,我想一直看到 JMenuBar。由于 JDialogs 不能像 JFrame 那样在顶部有 JMenuBar,所以我决定不要有多个 JMenuBar,而只是应该一直可见的一个。

最后,我将给出尽可能小(并且仍在工作)并且还包含问题的部分代码:

如果我可以诚实,我认为问题出在 JRootPane 部分。但我们会看到;)

有没有其他人遇到过这个问题并设法解决了它,或者有没有人想试一试?

提前致谢!


新增内容:

在下面的示例中,我将展示一个为该剧提供一些功能的版本。

这是我正在制作的程序: 在此处输入图像描述 第二张图片显示了右侧菜单未停靠的状态。 在此处输入图像描述 显然 JMenuBar 应该仍然可见和可操作,因为没有它,程序的许多功能将被禁用。

在这一点上,我开始认为当对话框(未停靠的菜单)取消停靠并集中在上面时,JMenuBar 不可能保持可见。

我知道 JDialog 上的 JMenuBar 不能采用 mac osx 样式(屏幕顶部),那么我可以使用其他任何技术来取消停靠,这确实给了我一个 mac osx 样式的 JMenuBar?

0 投票
2 回答
2015 浏览

java - 面板内绘制的图像似乎有错误的 x,y 偏移

所以,我有一个带有菜单、工具栏和面板的 JFrame。我在面板中加载图像,但出于某种奇怪的原因(至少对我而言),它们没有正确显示在面板中。有时它们从工具栏下方开始,有时在上方。此外,图像在底部被切割。该代码是可以编译和测试的完整示例中的一个干净示例。提前致谢。

包含框架的类:

面板类

图片 superman.jpg 可以在这里找到http://i50.tinypic.com/2yxnc3n.jpg。如您所见,图像位于工具栏下方,但在我的完整代码中,它也在上方。

0 投票
2 回答
272 浏览

java - 我的 JMenu 栏没有显示

当我运行我的应用程序时,我的 JMenuBar 没有出现。我怎样才能解决这个问题??

因此,当我运行 JFrame 时,我需要在顶部看到我的 JMenuBar。

我的布局为

代码:

0 投票
0 回答
170 浏览

java - 取消停靠 JPanel 隐藏 JMenuBar

我正在尝试以这样一种方式在 JFrame 中取消停靠 JPanel,以便在取消停靠时将 JPanel 与 JFrame 分开。我遇到的问题是,当我专注于未停靠的 JPanel 时,我正在使用的 JMenuBar 消失了。我目前正在使用 JDialog 来取消停靠 JPanel。JMenuBar的消失是因为JDialog,因为在使用mac osx的时候,屏幕顶部的JMenuBar对于JDialogs是不可用的。

有谁知道如何取消对接(以我可以保留 JMenuBar 的方式),或者甚至解决我遇到的问题?

这里有图片来给出这个问题的视觉想法。

在此处输入图像描述

在第二张图中,顶部的 JMenuBar 消失了。我暂时在 JDialog 的顶部添加了 JMenuBar,否则我不能再使用键盘快捷键了。 在此处输入图像描述

如果有任何问题,请不要犹豫。

提前致谢

0 投票
0 回答
376 浏览

java - Mac os x JMenuItem 加速器不显示

设置 JMenuBar 并将其添加到 JFrame 后,我有普通菜单(在 JFrame 的顶部),并且键盘快捷键(加速器)很好地显示在每个 JMenuItem 旁边(因此 JMenuBar 工作正常)。然而问题是,在使用以下代码行在屏幕顶部显示 JMenuItem 后,快捷方式将不再显示在 JMenuItems 旁边。

更奇怪的是,JCheckBoxMenuItems 确实显示了快捷方式。有谁知道这怎么可能?

可能有用的信息:

  • 软件:Mac OS X Lion 10.7.5
  • Java:版本 7 更新 9,JDK 1.9

此外,我仍然不完全清楚助记键的作用。如果 JMenuItem alrady 有加速器,JMenuItem 的助记键是否会添加任何功能?

如果有任何问题,请不要犹豫。

提前致谢

0 投票
2 回答
540 浏览

java - 如何让 JMenuBar 在不弹出菜单的情况下激活菜单?

我尝试让我JMenuBar首先JMenu在 上激活Alt KeyEvent,但不打开弹出窗口,以便稍后可以打开带有箭头键击的弹出窗口。就像在 NetBeans、Mozilla 和任何其他程序窗口中完成的一样。

这是不按预期工作的代码。最糟糕的副作用是它对 alt+tab 组合有反应,而且绝对不应该在alt+上弹出菜单tab。我只需要使菜单进入“武装”状态并能够通过箭头键遍历菜单(左右箭头“武装”菜单和向下箭头打开“武装”菜单弹出窗口)。有什么简单的方法可以做到这一点吗?

感谢 Guillaume Polet 解决:com.sun.java.swing.plaf.windows.WindowsLookAndFeel 类中有一些代码,可与 Alt 击键一起使用:

AltProcessor 类完成了所有的魔法。

如果您没有任何自定义 LaF,则可以按原样使用 WindowsLookAndFeel,或者有适当的示例如何为您自己的特殊 LaF 处理菜单中的 Alt 事件。

0 投票
2 回答
3091 浏览

java - 为什么我的 JmenuBar 没有显示

我正在研究一个简单的 gui。

我似乎无法找出我的JMenuBar未出现的原因。我错过了什么?

这是下面的代码。

全班:

0 投票
2 回答
786 浏览

swing - 没有 JMenuBar 的下拉菜单

有没有办法在 Java 中实现下拉按钮,但没有实现JMenuBar?我需要导入一个带有弹出菜单的按钮。我怎样才能做到这一点?

0 投票
2 回答
298 浏览

java - Java JMenuBar 未添加或未正确显示

我正在尝试将 JMenuBar 的子类添加到用户界面,但由于某种原因它从未出现过。我曾尝试使用 JFrame.setJMenubar() 和 JFrame.add(),我曾尝试从 SwingUtilities.invokeLater() 调用等中添加它...在使用 JMenuBar 本身而不是子类时它仍然有效,所以我怀疑它与此有关。

这是初始化应用程序窗口的代码:

这是 JMenuBar 的子类,它作为私有类位于主窗口类中: