我正在通过本教程http://code.makery.ch/library/javafx-8-tutorial/学习JavaFX,但在我的应用程序中,我已经创建了登录模块,并希望创建三种不同的视图-取决于用户的类型:管理员、患者、医生,所有这些视图都继承自User类。现在,我创建了Doctor视图,并将患者列表保存在主类中:
private ObservableList<Patient> patientData = FXCollections
.observableArrayList();
public ObservableList<Patient> getPatientData() {
return patientData;
}
public Main() {
patientData.add(new Patient("Hans", "Muster", 23));
} 我不知道我的下一步应该是什么。如果我与用户建立一个列表,并保留他们的医生、患者和管理员,这将是一个问题,因为生成正确的视图,例如医生只有患者列表。对我来说,另一个大问题是如何将其序列化为XML。如果我列出三个单独的列表,我想这不会是一种“优雅”的方式。
发布于 2015-06-14 02:55:18
您可以创建单个ObservableList<User>,然后使用FilteredList填充各种视图。
例如。
ObservableList<User> userList = FXCollections.observableArrayList();
// ...
ListView<User> patientView = new ListView<>();
patientView.setItems(new FilteredList<>(userList, Patient.class::isInstance));如果您希望使用ListView<Patient>而不是ListView<User>,最简单的方法是使用EasyBind库:
ListView<Patient> patientView = new List<View>();
patientView.setItems(EasyBind.map(new FilteredList<>(userList, Patient.class::isInstance),
Patient.class::cast);https://stackoverflow.com/questions/30821561
复制相似问题