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