繁体   English   中英

如何在Java FX中的gridpane上动态添加行?

[英]How to add the rows dynamically on gridpane in Java FX?

我在下面的一行中有一个数据库登录表单,

    // Hostname Input
    Label hostName = new Label("Host:");
    grid.add(hostName, 0, 2);

    final TextField host = new TextField();
    host.getText();
    GridPane.setConstraints(host, 1, 2);
    grid.getChildren().add(host);

    // Port Input
    Label portName = new Label("Port:");
    grid.add(portName, 2, 2);

    final TextField port = new TextField();
    port.getText();
    GridPane.setConstraints(port, 3, 2);
    grid.getChildren().add(port);

    // SID Input
    Label sidName = new Label("SID:");
    grid.add(sidName, 4, 2);

    final TextField sid = new TextField();
    sid.getText();
    GridPane.setConstraints(sid, 5, 2);
    grid.getChildren().add(sid);

    // Username Input
    Label userName = new Label("Username:");
    grid.add(userName, 6, 2);

    final TextField user = new TextField();
    user.getText();
    GridPane.setConstraints(user, 7, 2);
    grid.getChildren().add(user);

    // Password Input
    Label pw = new Label("Password:");
    grid.add(pw, 8, 2);

    final TextField password = new PasswordField();
    password.getText();
    GridPane.setConstraints(password, 9, 2);
    grid.getChildren().add(password);

在以下情况下,我需要添加更多行:

  1. 当txt输入文件有多行时。

    例如)只有一行时,无需扩展;如果只有两行,则需要再添加一行。

  2. 当用户单击按钮添加行时。

是否可以在Java FX中完成? 请帮忙!!

感谢您的光临!

为什么在阅读文本文件时不只使用gridPane.addRow()

try(BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();
    int lineCounter = 0;

    while (line != null) {
        lineCounter++;
        if(lineCounter > 1){
            gridPane.addRow(lineCounter-1, nodeThatYouWant);
        }
        sb.append(line);
        sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM