如何使用JavaFX消除(或着色)子菜单的页边距?

时间:2019-02-17 22:47:07

标签: java user-interface javafx

任何人都可以就如何去除子菜单的白色边距提出建议(或者至少如何更改边距的颜色)? 我尝试过:

  • “-fx-indent:0px;”
  • “-fx-start-margin:0px;”
  • “-fx-end-margin:0px;”
  • “-fx-padding:0px;”

但似乎没有任何作用

该类如下:

public static void assembleMenuPane(VBox masterPane) {
    ArrayList<String> list = new ArrayList<String>() {{
        add("A");
        add("B");
        add("C");
    }};

    Menu menuOptions = new Menu("Options");
    menuOptions.setStyle("-fx-font-size:12; -fx-background-color: #c9c9c9;");

    Menu menuOptionsChild = new Menu("Opt_1");
    menuOptionsChild.setStyle("-fx-border-color: yellow;" +
            " -fx-background-color: red;" +
            " -fx-indent: 0px;" +
            " -fx-start-margin: 0px;" +
            " -fx-end-margin: 0px;" +
            " -fx-padding: 0px;");

    menuOptions.getItems().add(menuOptionsChild);
    list.forEach((children) -> menuOptionsChild.getItems().add(new MenuItem(children)));

    MenuBar menuBar = new MenuBar();
    menuBar.setStyle("-fx-background-color: #bf6dbf;");
    menuBar.getMenus().addAll(menuOptions);
    VBox menuBarPane = new VBox(menuBar);
    masterPane.getChildren().add(menuBarPane);
}

,输出如下:

enter image description here

1 个答案:

答案 0 :(得分:0)

这是指向场景构建器所用的CSS根文件的链接:modena.css

查看菜单,菜单栏和菜单项部分。如果我了解您想要的内容,以下两种样式将删除上下文菜单中的空白。

.context-menu { 
-fx-padding: 0; }

.menu-item {
-fx-padding: 0; }

该特定菜单项中还有一个左右容器。左侧的容器中显示了文本,右侧的容器中显示了箭头。为了获得想要的效果,您需要确保将其应用于modena.css文件中的正确节点。