首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX应用程序-架构问题-继承类的不同列表

JavaFX应用程序-架构问题-继承类的不同列表
EN

Stack Overflow用户
提问于 2015-06-14 01:31:37
回答 1查看 105关注 0票数 1

我正在通过本教程http://code.makery.ch/library/javafx-8-tutorial/学习JavaFX,但在我的应用程序中,我已经创建了登录模块,并希望创建三种不同的视图-取决于用户的类型:管理员、患者、医生,所有这些视图都继承自User类。现在,我创建了Doctor视图,并将患者列表保存在主类中:

代码语言:javascript
复制
private ObservableList<Patient> patientData = FXCollections
            .observableArrayList();

    public ObservableList<Patient> getPatientData() {
        return patientData;
    }

    public Main() {
        patientData.add(new Patient("Hans", "Muster", 23));
    } 

我不知道我的下一步应该是什么。如果我与用户建立一个列表,并保留他们的医生、患者和管理员,这将是一个问题,因为生成正确的视图,例如医生只有患者列表。对我来说,另一个大问题是如何将其序列化为XML。如果我列出三个单独的列表,我想这不会是一种“优雅”的方式。

EN

回答 1

Stack Overflow用户

发布于 2015-06-14 02:55:18

您可以创建单个ObservableList<User>,然后使用FilteredList填充各种视图。

例如。

代码语言:javascript
复制
ObservableList<User> userList = FXCollections.observableArrayList();

// ...

ListView<User> patientView = new ListView<>();
patientView.setItems(new FilteredList<>(userList, Patient.class::isInstance));

如果您希望使用ListView<Patient>而不是ListView<User>,最简单的方法是使用EasyBind库:

代码语言:javascript
复制
ListView<Patient> patientView = new List<View>();
patientView.setItems(EasyBind.map(new FilteredList<>(userList, Patient.class::isInstance), 
    Patient.class::cast);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30821561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档