首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JavaFX动态表单域UI

JavaFX动态表单域UI
EN

Stack Overflow用户
提问于 2018-06-07 18:08:59
回答 2查看 816关注 0票数 0

有人知道如何从如下所示的UI组件中模拟功能吗?我想在TextField框中输入文本时重复添加表单域。我不需要下拉按钮,只需要动态添加表单。

EN

回答 2

Stack Overflow用户

发布于 2018-06-08 18:36:53

您可以修改GridPane的子项,在每次激活其中一个按钮时添加一个新的TextField & Button。监听text属性以启用/禁用Button并保存结果。

代码语言:javascript
运行
AI代码解释
复制
private static void insertRow(GridPane grid, List<String> values, int index) {
    // increment index of children with rowIndex >= index
    for (Node n : grid.getChildren()) {
        int row = GridPane.getRowIndex(n);
        if (row >= index) {
            GridPane.setRowIndex(n, row + 1);
        }
    }

    TextField text = new TextField();

    Button add = new Button("+");
    add.setDisable(true);
    add.setOnAction(evt -> {
        insertRow(grid, values, GridPane.getRowIndex(add) + 1);
    });

    values.add(index, "");

    text.textProperty().addListener((a, oldValue, newValue) -> {
        add.setDisable(newValue.isEmpty());
        values.set(GridPane.getRowIndex(add), newValue);
    });

    grid.addRow(index, text, add);
}

@Override
public void start(Stage primaryStage) throws Exception {
    GridPane grid = new GridPane();
    List<String> list = new ArrayList<>();
    insertRow(grid, list, 0);
    Button print = new Button("print");
    print.setOnAction(evt -> {
        System.out.println(list);
    });
    grid.add(print, 0, 1);
    Scene scene = new Scene(grid, 300, 500);

    primaryStage.setScene(scene);
    primaryStage.show();
}
票数 0
EN

Stack Overflow用户

发布于 2018-06-08 18:33:32

这可能不是你想要的,也可能不是最好的方法,但应该很容易适应你的需求。

基本上,您需要一个要添加到应用程序中的VBoxHBox对象列表。您可以自己创建列表并将其绑定到VBox的子项,或者只需使用getChildren().add()getChildren().remove()方法在VBox中添加/删除HBoxes。

下面是一个完整的小应用程序来演示这个概念。我创建了一个内部类来处理包含所需字段的HBox。这可以被改编成更有价值的:

代码语言:javascript
运行
AI代码解释
复制
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {

    private static VBox mainPane;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

        mainPane = new VBox(5);
        mainPane.setPadding(new Insets(10));
        mainPane.setAlignment(Pos.TOP_CENTER);

        mainPane.getChildren().add(new UIForms());

        primaryStage.setScene(new Scene(mainPane));
        primaryStage.show();

    }

    static void addField() {
        mainPane.getChildren().add(new UIForms());
    }

    static void removeField(UIForms field) {
        if (mainPane.getChildren().size() > 1) {
            mainPane.getChildren().remove(field);
        }
    }
}

class UIForms extends HBox {

    private TextField textField1;
    private TextField textField2;

    private Button btnAddField;
    private Button btnRemoveField;

    public UIForms() {

        // Setup the HBox layout
        setAlignment(Pos.CENTER_LEFT);
        setSpacing(5);

        // Create the UI controls
        textField1 = new TextField();
        textField2 = new TextField();
        btnAddField = new Button("+");
        btnRemoveField = new Button("-");

        // Setup button actions
        btnAddField.setOnAction(e -> Main.addField());
        btnRemoveField.setOnAction(e -> Main.removeField(this));

        // Add the UI controls
        getChildren().addAll(
                textField1, textField2, btnAddField, btnRemoveField
        );
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50747634

复制
相关文章
jQuery动态添加/删除元素及内容
添加新的 HTML 内容,四种方法:可根据上面的图片来区分四种方法插入元素的位置。
德顺
2019/11/12
7.3K0
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
指定元素中包含 id 属性的, 如: $("span[id]")  代码如下: <span id="span1" name="S1">AAA</span><br/>  <span id="span2" name="S2">BBB</span><br/>  <span name="Sx3">CCC</span><br/>  <span name="Sx4">DDD</span><br/>  <div id="div1" name="Dx1">EEE</div>  <div name="D2">FFF</div
hbbliyong
2018/03/06
1.6K0
jquery 节点的删除
detach()方法删除跟remove()一样,在删除节点后,同样也可以赋值给变量再次使用。
坚毅的小解同志的前端社区
2022/11/28
1.7K0
jquery 节点的删除
jquery根据属性选择
有信仰的人不会孤独。——阿列克谢耶维奇 分享一个jquery选择器的小技巧 我们可以通过自定义属性键值选中一个元素 例如如下元素: <div ruben="vampire">阿超</div> 然后我们通过ruben=vampire选中这个div 就可以如下写法: let vampire = $('div[ruben="vampire"]') 我们可以简单测试一下输出里面的内容 <div ruben="vampire">阿超</div> <script type="text/javascript">
阿超
2022/08/17
2K0
jquery根据属性选择
jquery点击删除按钮,删除当前的div
现在有多行div,共用一个删除事件,点击删除的时候,会把页面所有的div全都删掉了,但是我只需要点击哪一行div里面的删除按钮,就删除哪一行,其实很简单,只需要写一个this事件即可。
王小婷
2019/07/08
5.5K0
JavaScript进阶内容——jQuery
我们在前面的文章中已经掌握了JavaScript的全部内容,现在让我们了解一下JavaScript库
秋落雨微凉
2022/10/25
5.5K0
JavaScript进阶内容——jQuery
jquery 表格内容搜索
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title></title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script src="../../scripts/jquery.js" type="text/javascript"></script> <script type="text/javascript">
用户5760343
2019/10/10
2.3K0
jquery 表格内容搜索
activity结束之后刷新之前的activity的内容
点击添加按钮之后-----弹出一个新的activity--------在新的activity将数据输入保存之后,关闭当前的activity回到之前的activity刷新内容 实现:使用onActivityResult 启动页: btnButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i
欢醉
2018/01/22
9270
jQuery Mobile修改button的内容
jQuery Mobile修改button的内容。
业余草
2019/01/21
1.8K0
jQuery Mobile修改button的内容
Linux Vi 删除全部内容,删除某行到结尾,删除某段内容 的方法
1.打开文件 vi filename  2.转到文件结尾 G   或转到第9行 9G   3.删除所有内容(先用G转到文件尾) ,使用: :1,.d   或者删除第9行到第200行的内容(先用200G转到第200行) ,使用 :9,.d   删除说明:这是在vi中 ,“.”当前行 ,“1,.”表示从第一行到当前行 ,“d”删除
joshua317
2018/04/10
7.5K0
如何根据日志查看删除的数据(转译)
原文地址:https://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/   在我的SQLServer的工作中,最经常被问到的一个问题就是“能恢复删除的数据吗?”   我的回答是肯定的,注意下面的数据类型是可以通过脚本直接恢复的,当然数据库的版本要在SQLServer2005 以上才行。 经过讨论发现2008和2012以及2014的express版本也不能实现脚本直接恢复。 image text uniqueidentif
用户1217611
2018/01/30
7.5K0
jQuery中的常用内容总结(一)
jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠),由于回家看病以及处理一些其它事情耽搁了,不然这篇博客本该上上周或者上周写的;同时闲谈几句:在这里建议各位开发的童鞋,如果有疾病尽快治疗,不要拖,大病的话甚是~,身体是本钱,如果人的身体健康是一的话,若没有前面的一,后面再多的零也是徒然,同时,建议在开发的时候保持一个好的心态,积极面对需求和技术难点,不要像我一样在难的地方朝一个地方死钻、而且经常性考虑需求之外的需求,这样都是不太好,尽量以"需求"的心态去"开发",而不是以"开发"的心态做"需求
上帝
2018/05/18
1.1K0
jQuery中的常用内容总结(二)
jQuery中的常用内容总结(二) 转载请注明地址: http://www.cnblogs.com/funnyzpc/p/7571993.html 前言   距离上次博客更新已经有二十来天了(●′ω`●),恍惚之间时间已经从身边流走~,好难过≡(▔﹏▔)≡;所以,我决定这次不管熬夜到几点都要把本节和第三节内容全部写完~ 内容提要 ---- 选择器(上一节) 选择器的扩展方法(上一节) 节点的CSS操作及节点其他操作(上一节) Ajax同步与异步(本节) 事件(本节) 弹窗(本节) 参数序列化(第三节) 遍
上帝
2018/05/18
1.5K0
jQuery中的常用内容总结(一)
jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠),由于回家看病以及处理一些其它事情耽搁了,不然这篇博客本该上上周或者上周写的;同时闲谈几句:在这里建议各位开发的童鞋,如果有疾病尽快治疗,不要拖,大病的话甚是~,身体是本钱,如果人的身体健康是一的话,若没有前面的一,后面再多的零也是徒然,同时,建议在开发的时候保持一个好的心态,积极面对需求和技术难点,不要像我一样在难的地方朝一个地方死钻、而且经常性考虑需求之外的需求,这样都是不太好,尽量以"需求"的心态去"开发",而不是以"开发"的心态做"需求
上帝
2018/06/26
1K0
jQuery中的常用内容总结(二)
转载请注明地址: http://www.cnblogs.com/funnyzpc/p/7571993.html
上帝
2018/09/27
1.2K0
jQuery中的常用内容总结(二)
jQuery - 设置内容和属性
下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:
陈不成i
2021/07/22
2.1K0
jQuery中的常用内容总结(二)
jQuery中的常用内容总结(二) 转载请注明地址: http://www.cnblogs.com/funnyzpc/p/7571993.html 前言   距离上次博客更新已经有二十来天了(●′ω`●),恍惚之间时间已经从身边流走~,好难过≡(▔﹏▔)≡;所以,我决定这次不管熬夜到几点都要把本节和第三节内容全部写完~ ajax在实际开发中用的特别多,尤其是前后端分离的今天甚是~,接下来所说的ajax都是经过jQuery封装过的,至于写法大致有ajax标准写法和jQuery简写两种,下面先给出这两种写
上帝
2018/06/26
3K3
jQuery中的常用内容总结(三)
转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7571998.html
上帝
2018/09/27
8420
jQuery中的常用内容总结(三)
jQuery中的常用内容总结(三)
jQuery中的常用内容总结(三) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7571998.html 内容提要 ---- 选择器(第一节) 选择器的扩展方法(第一节) 节点的CSS操作及节点其他操作(第一节) Ajax同步与异步(上一节) 事件(上一节) 弹窗(上一节) 参数序列化(本节) 遍历(本节) 其他(本节) ---- A>表单参数序列化提交 如果没有借助jQuery,表单可以直接提交,这样带来两个问题就是安全(get提交)或表单参数验证障碍,嗯~,可能
上帝
2018/05/18
2K1
jQuery中的常用内容总结(三)
jQuery中的常用内容总结(三) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7571998.html ---- A>表单参数序列化提交 如果没有借助jQ
上帝
2018/06/26
8480

相似问题

jQuery根据内容删除分区

22

jquery在删除之前的内容后追加内容

21

使用jQuery根据td的内容删除td

45

JQuery如何根据子元素的内容删除元素

45

在使用jquery克隆文本内容之前将其删除

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档