从文本字段动态更新ListView(JavaFX)

从文本字段动态更新ListView(JavaFX),java,string,listview,javafx,Java,String,Listview,Javafx,我试图使用按钮上的简单事件处理程序将名称(字符串)应用到JavaFX中的ListView中,从TextFields接收输入。所有字段似乎都正常工作,只是没有更新到列表视图中 private ListView<String> manifestList; manifestList = new ListView<>(); manifestList.setId("List"); manifestList.getSelectionModel().se

我试图使用按钮上的简单事件处理程序将名称(字符串)应用到JavaFX中的ListView中,从TextFields接收输入。所有字段似乎都正常工作,只是没有更新到列表视图中

    private ListView<String> manifestList;
    manifestList = new ListView<>();
    manifestList.setId("List");
    manifestList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
用于生成输入文本框的循环(我已将其预设为name1、name2等以测试它)

for(i=0;i
按钮处理程序,用于将文本字段中的文本添加到listview(共有16个文本框)

按钮添加=新按钮(“添加”);
add.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){

对于(i=0;i制作一个全局
可观察列表
将其命名,例如
项目

//create an ObservableList
ObservableList<String> items = FXCollections.observableArrayList();


现在每次您想要在
列表视图中添加一个新项目
将其添加到
可观察列表中
创建一个全局
可观察列表
将其命名,例如
项目

//create an ObservableList
ObservableList<String> items = FXCollections.observableArrayList();


现在每次你想在
列表视图中添加一个新项目
可观察列表中添加它
什么是
测试
?如果你发布一个完整的示例,诊断问题会容易得多:看看如何创建。嘿,谢谢-test是我调用add方法的类的变量名,列表视图所处的位置。调用add方法的按钮位于不同的场景/类中。我将尝试创建一个最小的示例。请看一下我在这里制作的小应用程序:什么是
test
?如果您发布一个完整的示例,将更容易诊断问题:查看如何创建。嘿,谢谢-test是variab我调用add方法的类的名称,列表视图位于该类中。调用add方法的按钮位于另一个场景/类中。我将尝试创建一个最小的示例。看看我在这里制作的小应用程序:这是一个好主意,我已经实现了它,但是它似乎再次没有更新ListView精简场景gui。但是,我将ListView.getitems打印到控制台,并存储正确的值(name1 name2 name3)…与可观察列表相同。@dan6657请看一看Sedrick Jefferson的评论。
列表视图
可观察列表
@dan6657的值同步。您需要在问题中发布一个完整的示例来说明问题。否则,人们只能盲目猜测您正在做什么rong。如果代码中的其他内容都是正确的,那么您已经发布的代码将起作用。创建一个新的链接。@dan6657编辑了问题并添加了教程的额外链接,以便您更清楚错误可能是什么。请记住,如果代码中没有错误,这是正确的方法。如果您使用的是外部线程要修改
JavaFX元素
必须使用
Platform.runLater();
[以防万一]。这是一个好主意,我已经实现了它,但是它似乎再次没有更新场景gui中的ListView。但是,我将ListView.getitems打印到控制台并存储正确的值(name1 name2 name3)…与可观察列表相同。@dan6657请看一看Sedrick Jefferson的评论。
列表视图
可观察列表
@dan6657的值同步。您需要在问题中发布一个完整的示例来说明问题。否则,人们只能盲目猜测您正在做什么rong。如果代码中的其他内容都是正确的,那么您已经发布的代码将起作用。创建一个新的链接。@dan6657编辑了问题并添加了教程的额外链接,以便您更清楚错误可能是什么。请记住,如果代码中没有错误,这是正确的方法。如果您使用的是外部线程要修改
JavaFX元素
必须使用
Platform.runLater();
[以防万一]。
 Button add = new Button("add");

    add.setOnAction(new EventHandler<ActionEvent>(){
        @Override
        public void handle(ActionEvent event){

            for(i=0; i<16; i++){
            test.addtoList(editname[i].getText());
        }       
    }
});
//create an ObservableList
ObservableList<String> items = FXCollections.observableArrayList();
 manifestList.setItems(items);