dimanche 13 mars 2016

JavaFX - How do I access the result(ObservableList) from a service?

How do I access the returned result from a service? The result is queried from the database and added to a ObservableList. I have a checkbox and wanted its value to depend on the result from the database.

How do I bind the checkbox so that its value(checked/unchecked) will depend on the rs.getString("studentForm137") field.

//cboxForm137.selectedProperty().bind(//I don't know the codes to bind checkbox);

Service

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();

student.display() method

@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("studentForm137"),
                                rs.getString("studentForm138"),
                                rs.getString("studentGMC"),
                                rs.getString("studentNSO"),
                                rs.getString("studentHSDiploma")));
        }
    }
    catch(Exception e)
    {
        System.out.println("Error on Building Data");             
    }
    return student;
}




Aucun commentaire:

Enregistrer un commentaire