当前位置:首页 期刊杂志

JavaFX中列表视图的应用与研究

时间:2024-06-01

郭强

摘要:JavaFX作为替代了Swing作为Java语言进行图形界面开发的新工具,正在得到越来越多的开发者的支持[1]。而作为一种新的界面开发工具,相关教材上对于其具体应用并不详尽,尤其是对一些复杂的组件的介绍,如在这里要介绍的列表视图组件TableView,作为一个功能强大的组件,它的使用还存在着许多需要普及和重视的方面,在这里对TableView的功能进行挖掘。

关键词:JavaFX;TableView;组件

中图分类号:TP393.09 文献标识码:A 文章编号:1007-9416(2018)01-0106-01

虽然JavaFX已经得到Oracle公司和相关组织的全力支持,但由于Swing存在的时间长,已经得到了广大开发者的认可,很多开发者对JavaFX的理解并不深刻[2]。而TableView作为JavaFX中的一个常用的组件,常常用来进行数据条目的显示和操作,其功能非常强大,定义了繁多的API帮助开发者实现对数据的不同操作,而且自身还具有排序、多重排序等功能。因此能够深入的理解TableView的使用将会为程序设计开发带来非常大的便利,关于TableView的使用使这里要介绍的内容

1 TableView結构

TableView以表格的形式显示和加载数据,所以像表格一样,一个TableView对象需要定义它的列,因此TableView经常需要和TableColumn、TableCell对象进行组合使用,分别来指定表格的列和数据单元。

1.1 TableView

TableView用以对数据进行表格形式的显示。JavxFX在定义时赋予了排序,调整列宽的功能,而TableView的数据来源可以是从数据库中读取的数据集进行加载得到,也可以从开发者定义的ObservableList对象中获取。但是终究是要从ObservableList对象中得到数据,所以ObservableList对象成为了数据的来源。TableView对象通过setItems(ObservableLis)方法将数据添加。此外当ObservableList中的数据发生变化时,TableView中的数据显示可以实现同步的效果,这一点非常重要。

1.2 数据模型

数据模型提供了TableView数据源的模型,即数据的表现形式,在JavaFX中通过定义类来表述数据模型,类中的数据属性对应了数据源的列名,并需要对所有的属性提供public所修饰的set和get方法吗,而且在这里需要对方法名提出严格的要求,需要是setXxx或getXxx的形式,如对于name属性,需要提供setName和getName方法。而在定义ObservableList对象的数据类型时,需要与数据模型的类型保持一致。

1.3 TableColumn

TableColumn定义了数据显示在TableView中的列名,所以需要让TableColumn与数据模型建立联系,让TableColumn中的每一个列对应数据模型的一个属性。

userNameTCloumn = new TableColumn<>( “用户名” );

userNameTCloumn.setCellValueFactory( new PropertyValueFactory( “userName” ) );

在这里TableColumn对象userNameTCloumn定义为一个名为”用户名”的列,通过.setCellValueFactory方法与数据模型userInfo的userName建立了联系。

最后通过TableView的getColumns().addAll(TableColumn)方法将TableColumn添加到TableView视图中。

1.4 TableCell

TableCell作为TableView中的一个数据单元而存在,常常用来加载非数据的内容,例如加载一个超链接、按钮或者一张图片,可以强化TableView的功能。

2 重写方法,丰富TableView功能

上面我们已经提到可以通过使用TableCell来强化视图的功能,那么就需要重写相关方法来实现。在这里以显示超链接为列子来说明。

想要在列表视图TableView中的数据单元格中显示一个超链接,那么首先要操作超链接所对应的TableColumn对象。

TableColumn对象通过调用setCellFactory方法,重写Callback

首先定义一个HyperlinkTableCell对象,用于承载一个超链接组件,通过.getGraphic()方法得到一个超链接对象,在这里需要使用强制类型转换,在超链接对象上添加事件响应,通过setOnAction方法,定义点击超链接时发生的事件响应,实现界面的跳转。

程序的运行结果如图1所示。

可以看到数据表格中”查看”列是以一个超链接的形式进行显示,这个TableColumn对象是被重写的对象。除此之外还可以通过类似的方式实现表格数据编辑、删除等功能。

3 结语

JavaFX是一个具有光明未来的界面开发工具,它的用途不仅局限于APP,在互联网,移动开发上也具有强大的功能,对于它的学习还需要更加深入,而本文的TableView作为其中一个相对复杂强大的组件应用也显得非常重要,它的用途也会被人们所重视。

参考文献

[1]黄雁.JavaFX技术初探[J].电脑知识与技术,2010,06(15):3978-3979.

[2]蔡学镛.JavaFX精粹[J].程序员,2007,(11):111-113.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!