我有一个关于将文本定位到条形区域的问题。
我创建了这个例子:
void products_add(Product productsListHead)
我如何获得这种视觉效果:
在我的情况下,我想调整主舞台的大小并保留文本的相对位置。如果有更合适的组件,我可以使用不同的布局更改FlowPane。
答案 0 :(得分:3)
您可以选择使用StackPane
并以不同方式对齐其子女:
@Override
public void start( Stage stage )
{
StackPane flow = new StackPane();
flow.setPrefSize(900, 30);
Label label = new Label("Zoom 1.5");
Label labelStat = new Label("Users 7");
Label labelSec = new Label("Connected");
StackPane.setAlignment( label, Pos.CENTER_LEFT );
StackPane.setAlignment( labelStat, Pos.CENTER );
StackPane.setAlignment( labelSec, Pos.CENTER_RIGHT );
flow.getChildren().addAll(label, labelStat, labelSec);
Scene scene = new Scene(flow);
stage.setScene(scene);
stage.show();
}
答案 1 :(得分:2)
另一种选择,如果您预计将来会添加更多标签,则可以在HBox
中使用间隔(或弹簧)实现。
@Override
public void start(Stage primaryStage)
{
HBox hbox = new HBox();
hbox.setPrefSize(900, 30);
Label label = new Label("Zoom 1.5");
Label labelStat = new Label("Users 7");
Label labelSec = new Label("Connected");
Region lSpring = new Region();
HBox.setHgrow(lSpring, Priority.ALWAYS);
Region rSpring = new Region();
HBox.setHgrow(rSpring, Priority.ALWAYS);
hbox.getChildren().addAll(label, lSpring, labelStat, rSpring, labelSec);
Scene scene = new Scene(hbox);
primaryStage.setTitle("HBox Springs");
primaryStage.setScene(scene);
primaryStage.show();
}