javafx - 如何在舞台顶部添加标签
问题描述
我试图将“注册表单”文本放在顶部,但是当我执行 pane.add 时,它会分隔标签和文本框之间的间距。如何将它添加到顶部而不影响它下面的所有内容?
public class RegistrationForm extends Application {
public void start(Stage primaryStage) {
GridPane pane = new GridPane();
pane.setAlignment(Pos.CENTER);
pane.setPadding(new Insets(11.5, 12.5, 13.5, 14.5));
pane.setHgap(5.5);
pane.setVgap(5.5);
Text text = new Text ("Registration Form");
text.setFont(Font.font("Times New Roman", FontWeight.BOLD,
FontPosture.ITALIC, 20));
pane.getChildren().add(text);
pane.add(new Label("User Name: "), 0, 1);
pane.add(new TextField(), 1, 1);
pane.add(new Label("Password: "), 0, 2);
pane.add(new TextField(), 1, 2);
pane.add(new Label("Email: "), 0, 3);
pane.add(new TextField(), 1, 3);
pane.add(new Label("Phone: "), 0, 4);
pane.add(new TextField(), 1, 4);
Button btReg = new Button("Register");
pane.add(btReg, 0, 5);
GridPane.setHalignment(btReg, HPos.LEFT);
Button btCan = new Button("Cancel");
pane.add(btCan, 1, 5);
GridPane.setHalignment(btCan, HPos.LEFT);
Scene scene = new Scene(pane);
primaryStage.setTitle("Registration Form");
primaryStage.setScene(scene);
primaryStage.show();
}
}
解决方案
在文档中
add(Node child, int columnIndex, int rowIndex, int colspan, int rowspan) 在网格窗格的指定列、行位置和跨度处添加一个子项。
你应该使用:
pane.add(label, 0, 0, 2, 1);
推荐阅读
- c# - 似乎 HTTP/2 不适用于 Http.Sys 在 asp.net 中提供的身份验证
- python - 如何理解 python 协程中的“yield from”?
- node.js - 在新的 Windows 进程上触发事件
- c# - 使用逗号分割文本,但忽略字符串中的任何字符
- ruby-on-rails - ActiveRecord::StatementInvalid: PG::UndefinedFunction: ERROR: operator does not exist: integer = boolean LINE 1: ...edidos"."nota_emitida" = $1
- javascript - 初始化要在 React.js SPA 中使用的状态信息
- reactjs - 在材料表中使用自动完成
- graphql - 重新获取 MockedProvider 函数后的 Apollo 客户端警告
- reactjs - CORS 问题与软件包版本有关吗?
- javascript - 指针后的文字消失