ボタンのコレクションがあります:
VBox menuButtons = new VBox();
menuButtons.getChildren().addAll(addButton, editButton, exitButton);
CSSシートを使用せずに、このボタンの間にスペースを追加したいです。これには方法があるはずだと思います。
setPadding();ボックス内のボタン用です。 setMargin();ボックス自体に使用する必要があります。しかし、ボタン間の間隔を見つける方法が見つかりませんでした。
どんなアイデアでも嬉しいです。 :)
VBox
は間隔をサポートします:
VBox menuButtons = new VBox(5);
または
menuButtons.setSpacing(5);
setSpacing
メソッドを呼び出して値を渡すだけです。 HBox
の例(VBox
でも同じです):
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.layout.HBoxBuilder;
import javafx.stage.Stage;
public class SpacingDemo extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
stage.setTitle("Spacing demo");
Button btnSave = new Button("Save");
Button btnDelete = new Button("Delete");
HBox hBox = HBoxBuilder.create()
.spacing(30.0) //In case you are using HBoxBuilder
.padding(new Insets(5, 5, 5, 5))
.children(btnSave, btnDelete)
.build();
hBox.setSpacing(30.0); //In your case
stage.setScene(new Scene(hBox, 320, 240));
stage.show();
}
}
そして、これはどのように見えるかです:
間隔なし:
間隔あり:
FXMLを使用している場合は、spacing
属性を使用します。
<VBox spacing="5" />
他の人が述べたように、setSpacing()
を使用できます。
ただし、setMargin()
を使用することもできます。これはペイン(または単語内のボックス)用ではなく、個々のNode
s用です。 setPadding()
メソッドは、ペイン自体用です。実際、setMargin()
はノードをパラメーターとして使用するため、その目的を推測できます。
例えば:
_HBox pane = new HBox();
Button buttonOK = new Button("OK");
Button buttonCancel = new Button("Cancel");
/************************************************/
pane.setMargin(buttonOK, new Insets(0, 10, 0, 0)); //This is where you should be looking at.
/************************************************/
pane.setPadding(new Insets(25));
pane.getChildren().addAll(buttonOK, buttonCancel);
Scene scene = new Scene(pane);
primaryStage.setTitle("Stage Title");
primaryStage.setScene(scene);
primaryStage.show();
_
その行を次のように置き換えた場合、同じ結果が得られます。
_pane.setSpacing(10);
_
間隔をあけるべき複数のノードがある場合、個々のノードごとにsetSpacing()
を呼び出す必要があり、それはばかげているので、setMargin()
メソッドははるかに便利です。ただし、setMargin()
は、必要な場合に必要なものですノードの周囲のマージン(duh)どちら側にいくらかを決定できますsetSpacing()
メソッドは、ノードとウィンドウの端の間ではなく、ノードの間にスペースonlyを配置するためです。