Javafx 2 带集合的TableView
我应该如何处理1列的集合?我试过:Javafx 2 带集合的TableView,javafx-2,Javafx 2,我应该如何处理1列的集合?我试过: private ObservableList<EmailU> emails= FXCollections.observableList(new ArrayList<EmailU>()); public ObservableList<EmailU> emailsProperty() { return emails; } 有什么想法吗?FooProperty方法应该返回属性。这些属性能够将其更改通知其
private ObservableList<EmailU> emails= FXCollections.observableList(new ArrayList<EmailU>());
public ObservableList<EmailU> emailsProperty() {
return emails;
}
有什么想法吗?
FooProperty
方法应该返回属性。这些属性能够将其更改通知其他实体,这对于绑定和TableView工作至关重要。在您的情况下,它将是ListProperty
:
private ListProperty<EmailU> emails = new SimpleListProperty<>(
FXCollections.observableList(new ArrayList<EmailU>()));
public ListProperty<EmailU> emailsProperty() {
return emails;
}
public ObservableList<EmailU> getEmails() {
return emailsProperty().get();
}
public void setEmails(ObservableList<EmailU> emails) {
emailsProperty().set(emails);
}
private ListProperty电子邮件=新的SimpleListProperty(
FXCollections.observableList(newarraylist());
public ListProperty emailsProperty(){
回复邮件;
}
公共可观察列表getEmails(){
返回emailsProperty().get();
}
公开作废邮件(可观察邮件列表){
emailsProperty().set(电子邮件);
}
注意,您需要提供getter和setter来正确处理TableView。这也帮助我解决了另一个问题(使用Hibernate),谢谢!以下是使其同时适用于Hibernate和属性的更改:
public List getEmails(){return emailsProperty().get();}public void setEmails(List emails){emailsProperty().set(FXCollections.observelist(emails));}public ListProperty emailsProperty(){返回电子邮件;}
SEVERE: javafx.scene.control.Control loadSkinClass Failed to load skin 'StringProperty [bean: TableRow[id=null, styleClass=cell indexed-cell table-row-cell], name: skinClassName, value: com.sun.javafx.scene.control.skin.TableRowSkin]' for control TableRow[id=null, styleClass=cell indexed-cell table-row-cell]
java.lang.RuntimeException: java.lang.ClassCastException: com.sun.javafx.collections.ObservableListWrapper cannot be cast to javafx.beans.property.ReadOnlyProperty*
private ListProperty<EmailU> emails = new SimpleListProperty<>(
FXCollections.observableList(new ArrayList<EmailU>()));
public ListProperty<EmailU> emailsProperty() {
return emails;
}
public ObservableList<EmailU> getEmails() {
return emailsProperty().get();
}
public void setEmails(ObservableList<EmailU> emails) {
emailsProperty().set(emails);
}