Search code examples
javafxmenufxmlseparator

SeparatorMenuItem not displayed


Why is my SeparatorMenuItem not displayed in the Menu?

  <MenuBar>
    <menus>
      <Menu mnemonicParsing="false" text="DasChat">
        <items>
          <MenuItem mnemonicParsing="false" text="ExmapleMenuItem" />
          <MenuItem mnemonicParsing="false" text="Abmelden" />
          <SeparatorMenuItem/>
          <MenuItem mnemonicParsing="false" text="Schließen" />
          <MenuItem mnemonicParsing="false" text="ExmapleMenuItem" />           
        </items>
      </Menu>
      <Menu mnemonicParsing="false" text="Hilfe">
        <items>
          <MenuItem mnemonicParsing="false" text="Über DasChat" />
        </items>
      </Menu>
    </menus>
  </MenuBar>

This is how i load the FXML:

Stage primaryStage = new Stage();
final FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("Client.fxml"));
loader.setController(new ClientController(primaryStage));
try
{
    final Parent root = loader.load();
    final Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    primaryStage.getScene().getStylesheets().add(getClass().getResource("/style/daschat.css").toExternalForm());
    primaryStage.setTitle("DasChat");
    primaryStage.getIcons().add(new Image(this.getClass().getResourceAsStream("/images/icon.png")));
    primaryStage.show();
    primaryStage.setIconified(false);
    primaryStage.setMaximized(false);
    primaryStage.setMinWidth(primaryStage.getWidth());
    primaryStage.setMinHeight(primaryStage.getHeight());
}
catch (Exception e)
{
    //Logging stuff
}

This is what it looks like:

Bug in Application

, the SeparatorMenuItem should be between

Abmelden

and

Schließen

I have no Separator / SeparatorMenuItem styles applied. I don't know if that matters at all, but SeparatorMenuItem isn't documented in the JavaFX CSS Reference Guide.


Solution

  • The problem did lie in my css file:

    *
    {
        -fx-text-fill: black;
        -fx-border-width: 0 !important;
    }
    

    setting the -fx-border-width to

    0

    has caused the SeparatorMenuItem to be "gone".