小编Ste*_*ven的帖子

JavaFX 2.0选择框问题.如何在更新对象时更新表示对象列表的choiceBox?

我有一个表示列表对象的choiceBox.当代表其中一个对象的名称被另一位代码更改时,选择框的下拉列表中的名称不会更改.例如,如果我有一个由列表Test对象组成的选择框.测试代码如下所示:

class Test {
    String name;

    public Test(String name) {
        this.name = name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return name; 
    }
} 
Run Code Online (Sandbox Code Playgroud)

然后有一个选择框如下:

ChoiceBox<Test> chi = new ChoiceBox<>();
ObservableList<Test> items = FXCollections.observableArrayList();
chi.setItems(items);
items.addAll(new Test("ITEM1"),new Test("ITEM2"),new Test("ITEM3"));
Run Code Online (Sandbox Code Playgroud)

ChoiceBox将显示ITEM1,ITEM2和ITEM3列表

如果我然后通过以下代码更改其中一个项目的名称:

items.get(1).setName("CHANGED");
Run Code Online (Sandbox Code Playgroud)

ChoiceBox仍将显示ITEM1,ITEM2和ITEM3列表.我该如何制作,以便choiceBox更新并显示列表ITEM1,CHANGED和ITEM3?

java object javafx-2

8
推荐指数
1
解决办法
3039
查看次数

标签 统计

java ×1

javafx-2 ×1

object ×1