2017-11-10 26 views
0

FXMLを使用して生成されたアイテムを変更するにはどうすればよいですか?JavaFX ToolBar内で生成されたHBoxの間隔をどのように変更しますか?

JavaFXツールバーを作成すると、ネストされたHBox(またはVBox)が自動的に生成されます。例えば、私は、CSSプロパティ-fx-spacingを使用して0

<ToolBar fx:id="welcomeToolBar" prefHeight="50"> 
     <items> 
       <Button fx:id="closeButton" prefHeight="50" prefWidth="100" onAction="#closeWindow" text="Close" /> 
       <Button text="New Image" prefHeight="50" prefWidth="100" onAction="#newImage" styleClass="button-accent"/> 
       <Pane HBox.hgrow="ALWAYS"/> 
       <CheckBox text="Hide this window on application start" 
          fx:id="hideOnLoadCheckBox" onAction="#setVisibilityOnApplicationLoad"/> 
     </items> 
</ToolBar> 

Scenic View snapshot showing automatically generated HBox

+1

独自の 'ToolBar'を実装する必要があるかもしれません。 – Sedrick

答えて

2

へのHBoxを生成し、この間隔を設定したいと思います。これを別のCSSファイルで行い、ファイルをリンクするか、style属性を使用してFXMLファイルで直接行うことができます。

例FXML:

<ToolBar fx:id="welcomeToolBar" prefHeight="50" style="-fx-spacing: 0px;"> 
    <!-- items --> 
</ToolBar> 

例CSS:

.tool-bar { 
    -fx-spacing: 10px; 
} 

この作品理由はToolBarクラスのデフォルトのスキンは間隔のためStyleablePropertyを公開するということです。 SceneBuilderのCSSアナライザーとJava 9(と8)のソースコード(何らかの理由でScenicViewを動作させることができません)で見つけました。しかし、私はこのプロパティに関する文書を見つけることができませんでした。 JavaFX CSS ReferenceGuideでも

+0

これは素晴らしいです!ええ、JavaFXリファレンスを見ても、私は間違いなく参照を見ていませんでした。私はあなたにこのような偉大な詳細にこれを歩いていただきありがとう – pyRabbit

関連する問題