JavaFX 응용 프로그램을위한 글로벌 메뉴


14

Jayatana를 사용하여 Java Swing 응용 프로그램에 전역 메뉴를 사용할 수 있다는 것을 알고 있습니다. 그러나 JavaFX 응용 프로그램에 대한 전역 메뉴 지원을 찾고 있습니다. 검색 한 결과 Java에서 setUseSystemMenuBar 가 사용되어 Mac에서 동일한 종류의 동작이 가능 하다는 것을 알았습니다 . 그러나 우분투에서는 작동하지 않습니다.

내 자바 코드 :

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

산출:

우분투의 JavaFX 메뉴

또한이 문제에 관한 버그 보고서가 있습니다 : Gtk : 글로벌 시스템 메뉴 바 지원 구현

이 문제를 해결하기위한 해결 방법이 있습니까?


아직 알았어?
소크라테스

@Socrates는 아직 없습니다.
Gobinath

답변:


1

코드를 보면 경험이 풍부한 FX 개발자는 아니지만 "root.setTop (menuBar);" 전체 디스플레이의 맨 위 행이 아니라 컨테이너 맨 위에 메뉴 표시 줄을 찾습니다. 다른 명령이 필요하다고 생각합니다. Java AWT 및 Swing 경험 만 있고 잘못되었을 수 있습니다.


0

이미 해결되지 않은 경우. UI를 디자인하기 위해 별도의 fxml 파일을 사용해 볼 수 있습니다. 씬 빌더를 사용하십시오. 장면 빌더여기 에서 동일하게 다운로드 하십시오 .

우분투 16.04에서 동일하게 시도했지만 정상적으로 작동합니다. 도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.