突出的链接是http://www.devdaily.com/blog/post/jfc-swing/handling-main-mac-menu-in-
swing-application/,
但是Mac OS
X下的菜单栏显示为软件包名称而不是应用程序名称。我使用上面链接中的代码没有任何运气,所以我不确定在最近的Mac OS版本中是否有任何更改。
这是摘录:
public RootGUI() { super("Hello"); JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu("File"); JMenuItem item = new JMenuItem("Woah"); file.add(item); menuBar.add(file); setJMenuBar(menuBar); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(100, 100); pack(); setVisible(true); }
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Test");
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
new RootGUI();
}
catch(ClassNotFoundException e) {
System.out.println("ClassNotFoundException: " + e.getMessage());
}
catch(InstantiationException e) {
System.out.println("InstantiationException: " + e.getMessage());
}
catch(IllegalAccessException e) {
System.out.println("IllegalAccessException: " + e.getMessage());
}
catch(UnsupportedLookAndFeelException e) {
System.out.println("UnsupportedLookAndFeelException: " + e.getMessage());
}
}
});
}
菜单栏上的第一个菜单项应显示为“测试”,但事实并非如此。另一方面,文件菜单工作正常。有任何想法吗?
@凯泽
我想我知道发生了什么事。如果将main()方法放在 另一个类中 ,则一切正常。因此,您需要类似:
public class RootGUILauncher {
public static void main(String[] args) {
try {
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Test");
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(ClassNotFoundException e) {
System.out.println("ClassNotFoundException: " + e.getMessage());
}
catch(InstantiationException e) {
System.out.println("InstantiationException: " + e.getMessage());
}
catch(IllegalAccessException e) {
System.out.println("IllegalAccessException: " + e.getMessage());
}
catch(UnsupportedLookAndFeelException e) {
System.out.println("UnsupportedLookAndFeelException: " + e.getMessage());
}
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new RootGUI();
}
});
}
然后将您的RootGUI类放在另一个文件中。
我有一个带有Swing GUI的应用程序,我想在菜单栏中添加一个带有搜索按钮(lupe图标)的搜索字段。但是,卢佩图标不会显示。下面是我的代码: 我的项目结构就像 结果按钮不显示任何图标: 正如您所看到的,我现在正在用Class.GetResource(...)加载图像正如@AndrewThompson和@SergiyMedVynskyy所建议的,但这并不能解决问题。我还被告知我的类不应该是静态的
在我的应用程序中,我想在菜单栏中保留一个菜单栏和菜单,我想将注销按钮对齐到右侧,如下图所示。 我怎样才能做到这一点?
顶部菜单栏中,设有文件、快捷代码、资源、工具、项目、视图和帮助控件,具体说明如下。 名称 说明 文件 可以控制新建项目、新建文件、保存和运行。文件支持.js、.css、.html和.json格式。 快捷代码 可直接将所需代码添加到所编辑的项目文件(光标所在位置)中。 资源 可打开工具栏中的相应面板,将提供的模型、园区、地图等资源加载到项目文件中。还可以查看并设置我的项目、我的园区和我的地图。参阅资
左侧菜单栏包括图层、场景和底图。本章节中,我们将详细介绍菜单栏各功能的使用方法。 图层 图层的概念跟制图软件大致相同,可以理解为是堆叠在一起的透明纸。在 CityBuilder 中,通过图层可将数据文件加载到场景中,如城市建筑、道路、水系等。除了快速入门中介绍的加载公共数据以外,我们还可以上传本地的数据文件。 按下列步骤,将我的数据加载到图层中,并设置图层属性。 在左侧菜单栏中,点击图层右侧添加图
CampusBuilder 场景编辑器的顶部菜单栏设有7个基本功能项,包括文件、编辑、选择、工具、视角、插件和帮助。 文件 顶部菜单栏的文件控件包含以下功能: 可以打开本地 3D 场景文件; 将文件保存/另存为,在我的场景中可以看到保存后的场景,最后保存时的窗口图将作为场景的封面; 导入模型文件,支持的文件格式包括 .fbx, .obj, .3ds, .stl, .dae, .3d, .3mf 等
包括开始菜单,在线地图菜单、操作菜单、分析菜单、三维场景菜单、视图菜单以及数据处理菜单等7个主菜单。