[英]Javafx GridPane, how to center Node? (Text/Label)
我正在嘗試上一門課程學習Javafx。 從HTML + ERB模板過渡到Javafx框架時,我遇到了很多困難(我是Rails開發人員)。
由於某種原因,我無法將Label節點居中於網格窗格中。 這是我的start
方法:
@Override
public void start(Stage stage) throws Exception {
GridPane root = new GridPane();
FlowPane leftbanner = new FlowPane();
leftbanner.setPrefWidth(200);
String bgStyle = "-fx-background-color: lightblue;"
+ "-fx-background-radius: 0%;"
+ "-fx-background-inset: 5px;";
leftbanner.setStyle(bgStyle);
root.add(leftbanner, 0, 0, 1, 1);
root.add(createGridPane(), 1, 0, 1, 1);
Scene scene = new Scene(root, 700, 500);
stage.setTitle("Recommendify");
stage.setScene(scene);
stage.show();
}
我正在使用createGridPane
方法來構建我的應用程序。 這是該方法的內容,其中包括我嘗試使標簽居中的嘗試:
public GridPane createGridPane() {
GridPane grid = new GridPane();
grid.setPadding(new Insets(10));
grid.setHgap(10);
grid.setVgap(10);
Text txt = new Text("Recommendify");
txt.setFont(Font.font("Dialog", FontWeight.BOLD, 12));
GridPane.setHalignment(txt, HPos.CENTER);
grid.add(txt, 0, 0, 1, 1);
grid.add(new Separator(), 0, 1, 3, 1);
return grid;
}
我也嘗試過以下發布的解決方案: GridPane中Label的JavaFX對齊
我是否需要將此Label節點放入容器中以使其在GridPane中居中? 像HBox還是VBox?
您的代碼實際上沒有錯。 該“Recommendify”文本在其細胞中心。 但是,單元格的寬度不超過文本本身。
您可以通過在createGridPane()
方法中打開網格線來查看此信息:
grid.setGridLinesVisible(true);
要測試對齊方式,可以將ColumnConstraints
添加到GridPane
:
grid.getColumnConstraints().add(new ColumnConstraints(150));
上面的語句將第一列的首選寬度設置為150
。 這是新結果:
如您所見,“ Text
節點正確居中。
編輯: 請記住,如果要使
Text
在添加到第二行的Separator
上居中,則還需要使其跨3列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.