JavaFX MenuItem in hoher (height größer) MenuBar vertikal zentrieren

suizi

Mitglied
Hallo Leute!
Mein Problem bezieht sich auf die hier (siehe Bildanhang) gezeigte MenuBar. Aufgrund des TextFields wurde diese automatisch höher, was zur Folge hat, dass die MenuItems vertikal nicht mehr zentriert sind.
Ich finde weder bei den MenuItems noch bei der MenuBar selbst eine Einstellung die mir die Ausrichtung der Items ermöglicht.(weder im SceneBuilder noch wenn ich die MenuBar im Code erstelle) Habt ihr da eventuell einen Tipp für mich? (außer kein TextField in eine MenuBar zu stopfen 😛 )

Zum erstellen der Gui habe ich den SceneBuilder 2.0 (2.0-b20) verwendet. Ich arbeite mit der Java-Version 1.8.0_66-b17 unter MacOSX 10.11.3.

Hier ein Auszug der den linken teil der MenuBar über dem TableView zeigt:
Code:
...
           <MenuBar BorderPane.alignment="CENTER">
              <menus>
                <Menu mnemonicParsing="false" style="-fx-focus-color: transparent;" text="Suche:" />
                  <Menu mnemonicParsing="false">
                     <graphic>
                        <TextField prefHeight="12.0" prefWidth="167.0" />
                     </graphic>
                  </Menu>
                  <Menu mnemonicParsing="false">
                     <graphic>
                        <Button mnemonicParsing="false" text="Suche..." />
                     </graphic>
                  </Menu>
              </menus>
            </MenuBar>
...

asdf.png
Grüße suizi!
 
Statt alles in eine MenuBar zu prügeln (Pseudo-Code):
Code:
VBox {
    Label { text:"Suche:" },
    TextField,
    Button { "Suche..." },
    MenuBar {
        Menu { ... }, ...
    }
}

Der VBox ein gescheites Spacing geben (ich favorsiere "5", aber das ist deine Sache), festlegen, dass alle Kind-Elemente Pos#CENTER_LEFT aligned werden und dann sollte es klappen.
Aber: Du musst dann den Gradienten, der jetzt durch die MenuBar festgelegt wird, auf die VBox festlegen und die MenuBar stattdessen Transparent machen (sonst sieht es einfach doof aus). Oder einfach alles Einfarbig.
 

Zurück
Oben