(Swing
)中的允許您設置菜單欄(使用JFrame.setMenuBar(mb);
的MenuBar
的實例)。這個菜單欄可以顯示在不同的位置,具體取決於它運行的系統。如果應用程序正在運行的操作系統在屏幕頂部有一個菜單欄,則此菜單欄中通常會顯示JFrame
中設置的此菜單欄。如果不支持,菜單欄將顯示在框架本身的頂部。Java:如何檢查JFrame的菜單欄是否顯示在系統菜單欄或框架本身中?
你可以看到不同的系統上不同的行爲在波紋管的例子:
這是代碼的一個例子,我用它來設置菜單欄:
// Initialize a menu bar
MenuBar mb = new MenuBar();
// Initialize the menu and some menu items, add these to the menu bar
Menu m = new Menu("Menu 1");
MenuItem mi1 = new MenuItem("Menu Item 1");
MenuItem mi2 = new MenuItem("Menu Item 2");
MenuItem mi3 = new MenuItem("Menu Item 3");
m.add(mi1);
m.add(mi2);
m.addSeparator();
m.add(mi3);
mb.add(m);
// Set the menu bar
setMenuBar(mb);
我的問題是:如何檢查菜單欄是否會顯示在框架本身或系統菜單欄中(如果支持)?如果有任何可能的方法來檢查這個,而不需要初始化和定義一個菜單欄,那將會很棒。 也許這是不可能的,如果是這樣的話,是否可以在定義菜單欄後檢查相同的問題?
謝謝,這工作正常。我有一個問題,'apple.awt.graphics.UseQuartz'用於什麼?我看了一下這個頁面:'https://developer.apple。com/library/mac/documentation/java/conceptual/java14development/07-nativeplatformintegration/nativeplatformintegration.html'但它仍然不清楚。我將這兩個值都更改爲「true」和「false」,但我沒有注意到菜單的外觀有任何不同。 –
這只是另一個Mac特定屬性的示例;它可能與您的應用程序無關。我使用它來改善大點的字形渲染。 – trashgod
+1,對於Mac大師:) – camickr