我正在用e(fx)clipse编写JavaFX应用程序。我认为我遇到了一个UI错误,但我不确定它是否是设计的。
所以我有两段代码,每一段都有一个ListView<String>
设置为主要阶段的场景。第一个ListView
只包含一个项目,而另一个ListView
包含多个项目。当我在ListView
上选择了一个列表项并且我以编程方式两次编辑列表项时,只有一个项的ListView
将在所选项目中取消选中所选项目在具有多个项目的ListView
上将保持选中状态。
令人惊讶的是,如果只有一个项目的ListView
上的列表项被编辑一次而不是两次,它将保持选中状态。所以似乎问题只发生在第二次编辑之后。
以下是完整的代码:
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
ListView<String> lv = new ListView<String>();
lv.setItems(FXCollections.observableArrayList(Arrays.asList("A", "B", "C")));
//remove B and C for the ListView with only one item
stage.setScene(new Scene(lv, 200, 200));
stage.show();
lv.getSelectionModel().select(0);
lv.getItems().set(0, "B");
lv.getItems().set(0, "C");
}
}