Menu toàn cầu cho các ứng dụng JavaFX


14

Tôi biết rằng chúng ta có thể kích hoạt menu toàn cầu cho các ứng dụng Java Swing bằng Jayatana. Nhưng tôi đang tìm kiếm hỗ trợ menu toàn cầu cho các ứng dụng JavaFX . Sau khi tìm kiếm trên nó, tôi đã thấy rằng setUseSystemMothyBar được sử dụng trong JavaFX để cho phép loại hành vi tương tự trong Mac. Nhưng nó không hoạt động trong Ubuntu.

Mã Java của tôi:

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);
    }
}

Đầu ra:

Menu JavaFX trong Ubuntu

Ngoài ra có một báo cáo lỗi liên quan đến vấn đề này ở đây: Gtk: Triển khai hỗ trợ thanh menu hệ thống toàn cầu

Có cách giải quyết nào để giải quyết vấn đề này không?


Bạn đã tìm ra chưa?
Socrates

@Socrates chưa.
Yêu tinh

Câu trả lời:


1

Nhìn vào mã và tôi không phải là nhà phát triển FX có kinh nghiệm, nhưng có vẻ như dòng "root.setTop (menuBar);" đang định vị thanh menu ở đầu hộp chứa của bạn, không phải ở hàng trên cùng của tổng số màn hình. Tôi nghĩ rằng một số lệnh khác là cần thiết. Tôi chỉ có kinh nghiệm Java AWT và Swing và có thể sai.


0

Nếu chưa giải quyết được. Bạn có thể thử sử dụng tệp fxml riêng để thiết kế giao diện người dùng. Sử dụng xây dựng cảnh cho cùng. Xây dựng cảnh , tải về cùng từ đây .

Tôi đã thử tương tự trong Ubuntu 16.04 và nó hoạt động tốt. Hy vọng nó giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.