我对JavaFX中的ListView有疑问。
我如何在ListView中执行自定义项目,如下所示:
其次,当我点击Button1时,我想显示image2和textfield1
答案 0 :(得分:1)
实施您自己的CellFactory
会为您提供要在ListView
单元格上应用的所有选项。不幸的是,您上传的图片没有打开,因此我无法理解您的确切要求。无论如何,这是您为CellFactory
设置ListView
的方式,其中T
是您的数据类型。
ListView#setCellFactory(Callback<ListView<T>, ListCell<T>> value)
示例:强>
ListView<Employee> listView = new ListView<>();
listView.setCellFactory(new Callback<ListView<Employee>, ListCell<Employee>>() {
@Override
public ListCell<Employee> call(ListView<Employee> param) {
return new ListCell<Employee>() {
private ImageView imageView = new ImageView("ImageURL");
private TextField textField = new TextField("Text");
private Button button = new Button("Button");
private BorderPane bp = new BorderPane(imageView, null, button, null, textField);
@Override
protected void updateItem(Employee item, boolean empty) {
if (item == null || empty) {
setText(null);
setGraphic(null);
} else {
setText(item.getName());
setGraphic(bp);
}
}
};
}
});