Menú global para aplicaciones JavaFX

14

Sé que podemos habilitar el menú global para aplicaciones Java Swing usando Jayatana. Pero estoy buscando soporte de menú global para aplicaciones JavaFX . Después de buscarlo, descubrí que setUseSystemMenuBar se usa en JavaFX para habilitar el mismo tipo de comportamiento en Mac. Pero no está funcionando en Ubuntu.

Mi código 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);
    }
}

Salida:

Menú JavaFX en Ubuntu

También hay un informe de error con respecto a este problema aquí: Gtk: Implementar soporte de barra de menú del sistema global

¿Hay alguna solución para resolver este problema?

Gobinath
fuente
¿Ya te enteraste?
Sócrates
@Socrates aún no.
Gobinath

Respuestas:

1

Mirando el código, no soy un desarrollador experimentado de FX, pero parece la línea "root.setTop (menuBar);" está ubicando la barra de menú en la parte superior de su contenedor, no en la fila superior de la pantalla total. Creo que es necesario algún otro comando. Solo tengo experiencia en Java AWT y Swing y puedo estar equivocado.

DeepExplorer
fuente
0

Si no está resuelto ya. Puede intentar usar un archivo fxml separado para diseñar la interfaz de usuario. Use el generador de escenas para lo mismo. Creador de escenas , descargue lo mismo desde aquí .

He intentado lo mismo en ubuntu 16.04 y funciona bien. Espero eso ayude.

mohammed thaha jk
fuente