[英]How to right align a button in Java FX toolbar
我正在使用 Java FX 場景構建器構建 UI,我希望工具欄中的按鈕浮動到工具欄的右側。 我曾嘗試更改父(工具欄)和按鈕的節點方向,但似乎都被忽略了。
添加一個沒有內容的窗格,該窗格始終增長以適應欄中左對齊工具和右對齊工具之間的可用空間。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<ToolBar prefHeight="40.0" prefWidth="318.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<Button text="Apples" />
<Button text="Oranges" />
<Pane HBox.hgrow="ALWAYS" />
<Button text="Help" />
</ToolBar>
(在 Scene Builder 11.0.0 中驗證)
一種選擇:使用兩個用 HBox 容器包裝的 ToolBar 容器。 將幫助按鈕放在右側的工具欄中。 將左對齊按鈕放在左側工具欄中。 對於左側 ToolBar,將 HGrow 設置為ALWAYS
。 對於 Right ToolBar,將 HGrow 設置為NEVER
。 對於每個 ToolBar,將所有 Sizes 設置為USE_COMPUTED_SIZE
。
這是相關的fxml:
<HBox VBox.vgrow="NEVER">
<children>
<ToolBar HBox.hgrow="ALWAYS">
<items>
<Button text="Apples" />
<Button text="Oranges" />
</items>
</ToolBar>
<ToolBar HBox.hgrow="NEVER">
<items>
<Button text="Help" />
</items>
</ToolBar>
</children>
</HBox>
這是 Scene Builder 中顯示的層次結構:
這是 Scene Builder 中的顯示:
如果您可以將您的按鈕放在堆棧窗格中,那么您可以利用 Stackpane 的對齊屬性,該屬性采用 javafx.geometry.Pos - 堆棧窗格內子項的對齊方式。例如在您的情況下:
<StackPane >
<Button translateY="-15" translateX="15" StackPane.alignment="TOP_RIGHT"/>
</StackPane>
BorderPane mainBorderPane = new BorderPane();
BorderPane ToolBorderPane = new BorderPane();
ToolBar tBarLeft=new ToolBar();
ToolBar tBarRight=new ToolBar();
ToolBorderPane.setLeft(tBarLeft);
ToolBorderPane.setRight(tBarRight);
mainBorderPane.setTop(ToolBorderPane);
... ...為您的左對齊項目添加 tBarLeft 和您的右對齊項目添加 tBarRight
可以通過一些技巧來完成:為工具欄及其所有按鈕應用圍繞 Y 軸的 180 度旋轉。
<ToolBar rotate="-180.0" HBox.hgrow="ALWAYS">
<items>
<Button mnemonicParsing="false" rotate="180.0" text="Button">
<rotationAxis>
<Point3D y="1.0" />
</rotationAxis>
</Button>
</items>
<rotationAxis>
<Point3D y="1.0" />
</rotationAxis>
</ToolBar>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.