如何使 JavaFX 控件居中
2022-09-04 06:41:58
更具体地说,为什么我的 JavaFX 控件没有居中?这是两个屏幕截图,第一个是在启动后(我将窗口移动到一个更明显的位置,但尚未调整其大小),第二个是在调整其大小以展示我的问题之后。如果您帮助我确保它在首次显示时(在所有DPI上)大小正确,则可以获得奖励积分:
方便的是,相关代码包含在这些屏幕截图中。如果您仍然需要它作为文本,请转到此处:
private void initJFXPanel(JFXPanel holder)
{
{
{
rootGrid = new GridPane();
rootGrid.setAlignment(Pos.CENTER);
rootGrid.setPadding(new Insets(16));
rootGrid.setHgap(16);
rootGrid.setVgap(8);
}
interior = holder.getScene();
if (interior == null)
holder.setScene(interior = new Scene(rootGrid));
interior.setRoot(rootGrid);
}
{
statusLabel = new Label("Checking for Updates...");
statusLabel.setAlignment(Pos.CENTER);
statusLabel.setTextAlignment(TextAlignment.CENTER);
rootGrid.add(statusLabel, 0, 0);
}
{
progressBar = new ProgressBar();
progressBar.setProgress(-1);
progressBar.setPrefWidth(Constants.MAX_WIN_BOUNDS.width / 5d); // 1/5 the width of the screen
rootGrid.add(progressBar, 0, 1);
}
{
downloadButton = new Button("Get it!");
downloadButton.setAlignment(Pos.CENTER);
rootGrid.add(downloadButton, 0, 2);
}
holder.setMinimumSize(new Dimension((int)(rootGrid.getPrefWidth() + .5), (int)(rootGrid.getPrefHeight() + .5)));
setMinimumSize(holder.getMinimumSize());
}