[英]How do you specify the root context in your <web-app> tags in web.xml?
[英]How do you specify that you want your elements in a ToolBar to be centered?
出於某種原因,JavaFX的ToolBar
僅建議兩個用於項目對齊的選項: LEFT_TO_RIGHT
和RIGHT_TO_LEFT
。
有趣的是,如果這是RIGHT_TO_LEFT
,則必須以相反的順序指定您的商品, 以便它們自然顯示。
但是我看不到在中心對齊元素的任何選擇。 您如何實現的? 還是我必須使用工具欄以外的其他工具?
編輯:這是當前代碼...不幸的是,這不起作用:(
FXML:
<BorderPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.github.fge.grappa.debugger.csvtrace.tabs.linechart.LineChartTabDisplay">
<top>
<ToolBar fx:id="toolbar">
<HBox fx:id="hbox" alignment="CENTER">
<Region fx:id="leftSpacer"/>
<Button text="Refresh"/>
<ProgressBar visible="false"/>
<Label text="Layout testing"/>
<Region fx:id="rightSpacer"/>
</HBox>
</ToolBar>
</top>
</BorderPane>
班級:
public class LineChartTabDisplay
extends JavafxDisplay<LineChartTabPresenter>
{
public Region leftSpacer;
public Region rightSpacer;
public ToolBar toolbar;
public HBox hbox;
@Override
public void init()
{
HBox.setHgrow(leftSpacer, Priority.SOMETIMES);
leftSpacer.setMinWidth(Region.USE_PREF_SIZE);
HBox.setHgrow(rightSpacer, Priority.SOMETIMES);
rightSpacer.setMinWidth(Region.USE_PREF_SIZE);
}
}
但這就是它的作用:
找到。
實際上,代碼非常“簡單”。 有點,因為對於初學者來說,這確實應該在ToolBar
欄中,但是這里...
現在,FXML如下:
<BorderPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.github.fge.grappa.debugger.csvtrace.tabs.linechart.LineChartTabDisplay">
<top>
<ToolBar fx:id="toolbar">
<HBox fx:id="hbox" alignment="CENTER" spacing="5.0">
<Button text="Refresh"/>
<Label text="Layout testing"/>
</HBox>
</ToolBar>
</top>
</BorderPane>
代碼很簡單:
public class LineChartTabDisplay
extends JavafxDisplay<LineChartTabPresenter>
{
@FXML
protected ToolBar toolbar;
@FXML
protected HBox hbox;
@Override
public void init()
{
hbox.minWidthProperty().bind(toolbar.widthProperty());
}
}
好了,這個小技巧可以產生動態間隔:
final Region spacer = new Region();
HBox.setHgrow(spacer, Priority.SOMETIMES);
spacer.setMinWidth(Region.USE_PREF_SIZE);
如果將一個作為第一項,將另一個作為最后一項放在ToolBar
上,則中間的項應居中。
只需注意工具欄的寬度,然后將新值應用於HBox。 為了監視舞台的大小,這是必需的
toolbar.widthProperty().addListener((obs, oldVal, newVal) -> {
hbox.setPrefWidth(newVal.doubleValue());
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.