读书人

(通译)第十九回 JavaFX2.0 表格框Ta

发布时间: 2012-09-12 09:21:30 作者: rapoo

(翻译)第十九回 JavaFX2.0 表格框TableView

原文地址http://download.oracle.com/javafx/2.0/ui_controls/table-view.htm

?

?

JavaFX SDK API在的好几个类都被设计来以表格形式呈现数据。在 JavaFX应用中创建表格的最重要类是TableView, TableColumn, 和TableCell。可以通过实现数据模型或者应用一个细胞工厂来产生表格。

表格的类提供了内置的功能来在必要的时候进行数据排序和重置大小。

Figure 13-1 是一个典型的表格,用来呈现地址簿中的联系人信息。


Description of "Figure 13-1 Table Sample"


Description of "Figure 13-2 Table Without Data"

可以通过调用setVisible方法来管理列的可视性。比如说,你应用的逻辑要求隐藏用户电邮地址,可以这样达到目的:emailCol.setVisible(false).

如果数据要求更复杂的数据呈现结构,可以创建内嵌的列。

比如,如果地址簿中的联系人有两个email账户,就需要两列来展示首选和次要地址了。创建两个子列,然后在emailCol上调用getColumns 方法,见 Example 13-2.


Description of "Figure 13-3 Table with Nested Columns"

尽管表格被加入到了应用中,标准标题依然显示的是"No content in table" 因为没定义数据。为了不显示这个标题,可以使用setPlaceholder方法指定一个Node对象来显示在空表格中。


Description of "Figure 13-4 Table Populated with Data"


Description of "Figure 13-5 Adding Contact Information to the Address Book"

?

Figure 13-6 是上图点击Add按钮后的效果。联系人Emma White的信息现在在表格中显示了。


Description of "Figure 13-6 Newly Added Entry"


Description of "Figure 13-7 Sorting Multiple Columns"

?

作为开发者,可以通过 setSortType方法为应用中的每一列设置排序参数。 可以指定是升序还是降序。比如,下面这行代码设置了emailCol列是降序排序:emailCol.setSortType(TableColumn.SortType.DESCENDING);

可以通过从 TableView.sortOrder可见列表增加或删除 TableColumn实例来指定要排序哪些列。该列表中列的顺序就是排序的优先级(比如,0项目的优先级高于第一个项目。)

使用setSortable(false)方法可以阻止列的排序。


Description of "Figure 13-8 Editing a Table Cell"

读书人网 >Web前端

热点推荐