ฉันรู้ว่าเราสามารถเปิดใช้งานเมนูทั่วโลกสำหรับแอปพลิเคชัน Java Swing โดยใช้ Jayatana แต่ฉันกำลังค้นหาการสนับสนุนเมนูระดับโลกสำหรับแอปพลิเคชันJavaFX หลังจากค้นหาแล้วฉันพบว่าsetUseSystemMenuBarใช้ใน JavaFX เพื่อเปิดใช้งานลักษณะการทำงานแบบเดียวกันใน Mac แต่มันไม่ทำงานใน Ubuntu
รหัส Java ของฉัน:
import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.paint.*;
import javafx.stage.*;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 300, 250, Color.WHITE);
MenuBar menuBar = new MenuBar();
// Use system menu bar
menuBar.setUseSystemMenuBar(true);
menuBar.prefWidthProperty().bind(primaryStage.widthProperty());
root.setTop(menuBar);
Menu fileMenu = new Menu("File");
Menu webMenu = new Menu("Web");
Menu sqlMenu = new Menu("SQL");
menuBar.getMenus().addAll(fileMenu, webMenu, sqlMenu);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
เอาท์พุท:
นอกจากนี้ยังมีรายงานข้อผิดพลาดเกี่ยวกับปัญหานี้ที่นี่: Gtk: ใช้การสนับสนุนแถบเมนูระบบทั่วโลก
มีวิธีแก้ไขปัญหาเฉพาะหน้าเพื่อแก้ไขปัญหานี้หรือไม่?