Checkbox JavaFX-如何从服务访问结果(ObservableList)?

Checkbox JavaFX-如何从服务访问结果(ObservableList)?,checkbox,javafx,observablelist,Checkbox,Javafx,Observablelist,如何访问服务返回的结果?从数据库中查询结果并将其添加到ObservableList中。我有一个复选框,希望它的值取决于数据库的结果 如何绑定复选框,使其值(选中/未选中)取决于rs.getString(“studentForm137”)字段 //cboxForm137.selectedProperty().bind(//我不知道要绑定的代码复选框) 服务 final Service<ObservableList<Student>> service = new Servic

如何访问服务返回的结果?从数据库中查询结果并将其添加到ObservableList中。我有一个复选框,希望它的值取决于数据库的结果

如何绑定复选框,使其值(选中/未选中)取决于rs.getString(“studentForm137”)字段

//cboxForm137.selectedProperty().bind(//我不知道要绑定的代码复选框)

服务

final Service<ObservableList<Student>> service = new Service<ObservableList<Student>>() 
    {
        @Override
        protected Task<ObservableList<Student>> createTask() 
        {
            return new Task<ObservableList<Student>>() 
            {
                @Override
                protected ObservableList<Student> call() throws Exception 
                {
                    for (int i = 0; i < 250; i++) 
                    {
                        updateProgress(i, 250);
                        Thread.sleep(2);
                    }
                    return student.display();
                }
            };
        }
    };
service.start();
最终服务=新服务()
{
@凌驾
受保护的任务createTask()
{
返回新任务()
{
@凌驾
受保护的ObservableList调用()引发异常
{
对于(int i=0;i<250;i++)
{
updateProgress(i,250);
睡眠(2);
}
返回student.display();
}
};
}
};
service.start();
学生班

public class Student extends Person {

private SimpleStringProperty form137;
private SimpleStringProperty form138;
private SimpleStringProperty goodMoralCertificate;
private SimpleStringProperty birthCertificate;
private SimpleStringProperty highschoolDiploma;


public Student()
{
    super();
}

public Student(String lastName, String firstName, String middleName, 
        String cpNumber, String address, String dateOfBirth,
        String placeOfBirth, String emailAddress, String gender,
        String fathersName, String mothersName, 
        String form137, String form138, String goodMoralCertificate, 
        String birthCertificate, String highschoolDiploma)
{
    super(lastName, firstName, middleName, 
        cpNumber, address, dateOfBirth, placeOfBirth, emailAddress, gender,
        fathersName, mothersName);

    this.form137 = new SimpleStringProperty(form137);
    this.form138 = new SimpleStringProperty(form138);
    this.goodMoralCertificate = new SimpleStringProperty(goodMoralCertificate);
    this.birthCertificate = new SimpleStringProperty(birthCertificate);
    this.highschoolDiploma = new SimpleStringProperty(highschoolDiploma);
}

//form137
public String getForm137()
{
    return form137.get();
}

public void setForm137(String form137)
{
    this.form137.set(form137);
}

public StringProperty form137Property()
{
    return form137;
}

//form138
public String getForm138()
{
    return form138.get();
}

public void setForm138(String form138)
{
    this.form138.set(form138);
}

public StringProperty form138Property()
{
    return form138;
}

//goodMoralCertificate
public String getGoodMoralCertificate()
{
    return goodMoralCertificate.get();
}

public void setGoodMoralCertificate(String goodMoralCertificate)
{
    this.goodMoralCertificate.set(goodMoralCertificate);
}

public StringProperty goodMoralCertificateProperty()
{
    return goodMoralCertificate;
}

//birthCertificate
public String getBirthCertificate()
{
    return birthCertificate.get();
}

public void setBirthCertificate(String birthCertificate)
{
    this.birthCertificate.set(birthCertificate);
}

public StringProperty birthCertificateProperty()
{
    return birthCertificate;
}

//highschoolDiploma
public String getHighschoolDiploma()
{
    return highschoolDiploma.get();
}

public void setHighschoolDiploma(String highschoolDiploma)
{
    this.highschoolDiploma.set(highschoolDiploma);
}

public StringProperty highschoolDiplomaProperty()
{
    return highschoolDiploma;
}

@Override
public ObservableList display() 
{
    Connection c = null;
    PreparedStatement pst = null;
    ResultSet rs = null;

    ObservableList<Student> student = FXCollections.observableArrayList();
    try
    {
        c = MySqlConnection.connect();

        String SQL = "SELECT * " +
                        "FROM students ";
        pst = c.prepareStatement(SQL);
        rs = pst.executeQuery();

        while(rs.next())
        {   
            student.add(new Student(rs.getString("studentLastName"), 
                                rs.getString("studentFirstName"),
                                rs.getString("studentMiddleName"), 
                                rs.getString("studentCPNumber"),
                                rs.getString("studentAddress"),
                                rs.getString("studentDateOfBirth"),
                                rs.getString("studentPlaceOfBirth"),
                                rs.getString("studentEmailAddress"),
                                rs.getString("studentGender"),
                                rs.getString("studentFathersName"),
                                rs.getString("studentMothersName"),
                                rs.getString("studentForm137"),
                                rs.getString("studentForm138"),
                                rs.getString("studentGMC"),
                                rs.getString("studentNSO"),
                                rs.getString("studentHSDiploma")));
        }
    }
    catch(Exception e)
    {
        System.out.println("Error on Building Data");             
    }
    finally
    {
        try 
        {
            PublicClass.closeConnection(c, pst, rs);
        } 
        catch (SQLException ex) 
        {
            Logger.getLogger(Student.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return student;
}
}
公共班级学生扩展个人{
私有财产表137;
私有财产表138;
私有财产证书;
私人财产出生证;
私立简单产权高中文凭;
公立学生()
{
超级();
}
公立学生(字符串lastName、字符串firstName、字符串middleName、,
字符串cpNumber、字符串地址、字符串dateOfBirth、,
字符串placeOfBirth、字符串emailAddress、字符串性别、,
字符串父名称,字符串母名称,
字符串格式137、字符串格式138、字符串格式证书、,
字符串出生证,字符串高中文凭)
{
超级(姓、名、中间名、,
cpNumber、地址、出生日期、出生地点、电子邮件地址、性别、,
父亲的名字,母亲的名字);
this.form137=新的SimpleStringProperty(form137);
this.form138=新的SimpleStringProperty(form138);
this.goodMoralCertificate=新的SimpleStringProperty(goodMoralCertificate);
this.birthCertificate=新的SimpleStringProperty(birthCertificate);
this.highschool diplificate=新SimpleStringProperty(highschool diplificate);
}
//表格137
公共字符串getForm137()
{
返回表单137.get();
}
公共void setForm137(字符串form137)
{
本.form137.set(form137);
}
public StringProperty form137Property()
{
返回表格137;
}
//表格138
公共字符串getForm138()
{
返回表单138.get();
}
公共void setForm138(字符串form138)
{
本.表格138.集(表格138);
}
公共StringProperty form138Property()
{
返回表格138;
}
//良好道德证书
公共字符串getGoodCertificate()
{
返回证书。get();
}
公共无效setGoodMoralCertificate(字符串goodMoralCertificate)
{
此.goodMoralCertificate.set(goodMoralCertificate);
}
public StringProperty goodMoralCertificateProperty()
{
退还货物证书;
}
//出生证
公共字符串getBirthCertificate()
{
返回出生证书。get();
}
公共无效setBirthCertificate(字符串出生证书)
{
this.birthCertificate.set(birthCertificate);
}
public StringProperty birthCertificateProperty()
{
返回出生证明;
}
//高中文凭
公立高中文凭()
{
返回高中文凭。获取();
}
公立高中文凭(字符串高中文凭)
{
这个。高中文凭。套装(高中文凭);
}
公共财产高中文凭财产()
{
返回高中文凭;
}
@凌驾
公共可观察列表显示()
{
连接c=null;
PreparedStatement pst=null;
结果集rs=null;
ObservableList student=FXCollections.observableArrayList();
尝试
{
c=MySqlConnection.connect();
String SQL=“选择*”+
“来自学生”;
pst=c.prepareStatement(SQL);
rs=pst.executeQuery();
while(rs.next())
{   
添加(新学生(rs.getString(“studentLastName”),
rs.getString(“studentFirstName”),
rs.getString(“studentMiddleName”),
rs.getString(“studentCPNumber”),
rs.getString(“学生地址”),
rs.getString(“学生出生日期”),
rs.getString(“学生出生地”),
rs.getString(“studentEmailAddress”),
rs.getString(“学生性别”),
rs.getString(“学生父亲姓名”),
rs.getString(“学生母亲姓名”),
rs.getString(“studentForm137”),
rs.getString(“studentForm138”),
rs.getString(“学生GMC”),
rs.getString(“studentNSO”),
rs.getString(“studentHSDiploma”);
}
}
捕获(例外e)
{
System.out.println(“建筑数据错误”);
}
最后
{
尝试
{
公共类。紧密连接(c、pst、rs);
} 
catch(SQLException-ex)
{
Logger.getLogger(Student.class.getName()).log(Level.SEVERE,null,ex);
}
}
留学生;
}
}

我不太明白你的问题。当服务调用完成时,可以使用
service.getValue()
获得结果。您的服务将生成一个
Student
对象列表:每个对象都有一个与
studentForm137
数据库列中的值对应的属性。您需要一整套复选框,列表中每个学生对应一个复选框。此外,
Student
类中的相应属性看起来像是字符串,而不是布尔值,这是必需的