JavaFX Uygulamaları için Global Menü


14

Jayatana'yı kullanarak Java Swing uygulamaları için global menüyü etkinleştirebileceğimizi biliyorum. Ancak JavaFX uygulamaları için genel menü desteği arıyorum . Üzerinde arama yaptıktan sonra, setUseSystemMenuBar'ın JavaFX'te Mac'te aynı tür davranışları etkinleştirmek için kullanıldığını gördüm . Ancak Ubuntu'da çalışmıyor.

Java kodum:

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

Çıktı:

Ubuntu'da JavaFX Menüsü

Ayrıca burada bu sorunla ilgili bir hata raporu var: Gtk: Küresel sistem menü çubuğu desteği uygulayın

Bu sorunu çözmek için herhangi bir geçici çözüm var mı?


Henüz buldun mu?
Sokrates

@Socrates henüz değil.
Gobinath

Yanıtlar:


1

Koda baktığımda, deneyimli bir FX geliştiricisi değilim ama "root.setTop (menuBar);" menü çubuğunu, toplam ekranın üst satırında değil, kapsayıcınızın üst kısmında bulmaktır. Başka bir komutun gerekli olduğunu düşünüyorum. Yalnızca Java AWT ve Swing deneyimim var ve yanlış olabilir.


0

Henüz çözülmediyse. Kullanıcı arayüzünü tasarlamak için ayrı bir fxml dosyası kullanmayı deneyebilirsiniz. Aynı şey için sahne oluşturucuyu kullanın. Sahne oluşturucu , buradan indirin .

Aynı şeyi Ubuntu 16.04'te denedim ve iyi çalışıyor. Umarım yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.