如何在JavaFX中将数据感知到TableView中

时间:2014-03-03 09:44:01

标签: javafx javafx-2

我要创建desktop application。在我的应用程序中,服务器和客户端上的数据库只是请求服务器获取数据并返回相应类的对象。

public void serveStudentList() {
    BufferedOutputStream bos = null;
    ObjectOutputStream oos = null;
    Session sess = null;
    Transaction tx = null;
    try {
        bos = new BufferedOutputStream(con.getOutputStream());
        oos = new ObjectOutputStream(bos);

        sess = HUtil.getSessionFactory().openSession();
        tx = sess.beginTransaction();
        sess = HUtil.getSessionFactory().openSession();

        @SuppressWarnings("unchecked")
        List<Student> students = sess.createQuery("FROM Student").list();

        tx.commit();

        System.out.println("DATABASE query complete.\nWriting Object of List type to the Sream.");

        oos.writeObject(students);
        oos.flush();
        System.out.println("Object Wrote...\n Closing this stream now.");
        oos.close();
        bos.close();
        con.close();


    } catch (IOException e) {
        e.printStackTrace();
    } catch (HibernateException he) {
        if (tx != null) {
            tx.rollback();
        }
        he.printStackTrace();
    } finally {
        sess.close();
    }

现在我想使用这个学生对象来填充TableView

我希望使用简单的String对象将数据填充到TableView中,我不能这样做吗?

我不想使用SimpleStringPropery,我想使用String对象。 我正在使用hibernate,所以我映射了我的所有类

1 个答案:

答案 0 :(得分:1)

只需创建一个ObservableList<Student>并将其与您的表绑定!简单!

您可以从ObservableList<Student>

中制作List<Student>
List<Student> students = sess.createQuery("FROM Student").list();
ObservableList<Student> listStudents = FXCollections.observableList(students);
TableView table = new TableView();
table.setItems(listStudents);

您必须将TableColumn添加到TableView,有关完整示例,您可以通过

http://docs.oracle.com/javafx/2/ui_controls/table-view.htm#CJABHGAJ