关键词不能为空

当前您在: 主页 > 英语 >

JavaFX2.0表格框TableView

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-13 19:39
tags:

-

2021年2月13日发(作者:husband什么意思)


实用



JavaFX SDK API


在的好几个类都被设计来以表格形式呈现数据。在



JavaFX


应用中创建表格的最重要类是


TableView, TableColumn ,



TableCell


。可以通过实现数据模型或者应用一个细胞工厂来产生表格。



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


Figure 13-1



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



Figure 13-1 Table Sample



Description of



创建


Table



Example 13-1



中的代码 块创建了一个空表格,它带有


3


列。然后被加入了应用的场景中 。




Example 13-1 Adding a Table


import ation; import import import


; import import olumn; import


iew; import import import


; public class Main extends Application { private TableView table = new TableView(); public


static void main(String[] args) { launch(args); } Override public void start(Stage stage) { Scene scene = new


文档



实用



Scene(new Group()); le(


label = new Label(


TableColumn(


emailCol = new TableColumn(


VBox vbox = new VBox(); cing(5); ldren().addAll(label, table); ding(new


Insets(10, 0, 0, 10)); ((Group) t()).getChildren().addAll(vbox); ne(scene);


(); } }



表格控件是通过实例化


TableView


类创建的。在



Example 13-1



中,它被加入到了


VBox


布局容器中,然而,


你可以直接把它加入应用场景中。



Example 13-1



定义了三列来存储地址簿中的以下信息:某个联系人的名和姓还有电邮地址。列是用

TableColumn


类创建的。



TableView


类的


getColumns


方法把前 面创建的列加入到表格中。在应用中,可以用这个方法动态的添加和


移除列。

< p>


编译运行的效果如下


Figure 13-2


.


Figure 13-2 Table Without Data



Description of



文档



实用



可以通过调用


setVisible


方法来管理列的可视性。比如说,


你应用的逻辑要求隐藏用户电邮地址,


可以这样


达到目的:


ible(false) .


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



比如,如果地址簿中的联系人有两个


email

账户,就需要两列来展示首选和次要地址了。创建两个子列,


然后在


emailCol


上调用


getColumns


方法,见



Example 13-2


.


Example 13-2 Creating Nested Columns


TableColumn firstEmailCol = new TableColumn(


TableCo lumn(


把这些代码加入到



Example 13-1


,


然后编译运行,表格的呈现效果如



Figure 13-3


.


Figure 13-3 Table with Nested Columns



Description of



尽管表格被加入到了应用中,标准标题依然显示的是


< p>
因为没定义数据。为了不显示这


个标题,可以使用


setPlaceholder


方法指定一个


Node


对象来显示在空表格中。



定义


Data Model


当在


JavaFX


应用中创建表格时,


最佳实践 是实现一个定义了数据模型、


提供了方法和字段的类来扩展表格


的工作。


Example 13-3



创建了一个


Person


类来定义地址簿中的数据。

< p>


Example 13-3 Creating the Person Class


文档



实用



public static class Person { private final SimpleStringProperty firstName; private final SimpleStringProperty


lastName; private final SimpleStringProperty email; private Person(String fName, String lName, String email)


{ ame = new SimpleStringProperty(fName); me = new SimpleStringProperty(lName);


= new SimpleStringProperty(email); } public String getFirstName() { return (); } public


void setFirstName(String fName) { (fName); } public String getLastName() { return (); }


public void setLastName(String fName) { (fName); } public String getEmail() { return (); }


public void setEmail(String fName) { (fName); } }


firstName , lastName ,



email


字符串属性(


string property


)是创建来引用特定的数据元素的。



另外,


get



set


方法是提供给每个数据元素的。这样,比如说,


get FirstName


方法返回了


firstName

< p>
属性的


值,而


setFirstName


方法为这个属性指定了值。



当数据模型在


Person


类中形成时,可以创建一个


ObservableList < /p>


数组来定义足够多的行来在表格中显示你


的数据。看


Example 13-4



中的代码。




Example 13-4 Defining Table Data in an Observable List


final ObservableList data = ableArrayList( new P erson(




Person(



下一步是将数据和表格列相关联。可以通过为每个数据元素定义的属 性来实现,见


Example 13-5


.


Example 13-5 Setting Data Properties to Columns


lValueFactory( new PropertyValu eFactory(


lValueFactory( new PropertyValueFactory(


lValueFactory( new PropertyValueFactory(


setCellValueFactory


方法 为每列指定了一个细胞工厂。细胞工厂是通过使用


PropertyValueFact ory


类来实现


的,该类使用了表格列的

firstName , lastName



email


属性来引用

< p>
Person


相应的方法。


定义了数据模型、加入数据并和列相关联后可以把数据加入表格了。使用


Table View


类的


setItems


方法:


ms(data) .


由于< /p>


ObservableList


对象可以跟踪元素的任何改变,< /p>


TableView


的容在数据改变后是自动更新的。



查看



Example 13-6



中的代码。



Example 13-6 Creating a Table and Adding Data to It


import StringProperty; import tyValueFactory; import


ation; import ections; import ableList;


import import import import


; import olumn; import iew;


import import import public class Main


extends Application { public static class Person { private final SimpleStringProperty firstName; private final


SimpleStringProperty lastName; private final SimpleStringProperty email; private Person(String fName, String


lName, String email) { ame = new SimpleStringProperty(fName); me = new


SimpleStringProperty(lName); = new SimpleStringProperty(email); } public String getFirstName()


{ return (); } public void setFirstName(String fName) { (fName); } public String


getLastName() { return (); } public void setLastName(String fName) { (fName); } public


文档



实用



String getEmail() { return (); } public void setEmail(String fName) { (fName); } } private


TableView table = new TableView(); private final ObservableList data =


ableArrayList( new Person(



Person(


public static void main(String[] args) { launch(args); } Override public void start(Stage stage) { Scene scene = new


Scene(new Group()); le(


label = new Label(


TableColumn(


Prop ertyValueFactory(


Name


TableColumn emailCol = new TableColumn(


lValueFactory( new Property ValueFactory(


umns().addA ll(firstNameCol, lastNameCol, emailCol); final VBox vbox = new VBox();


cing(5); ldren().addAll(label, table); ding(new Insets(10, 0, 0, 10)); ((Group)


t()).getChildren().addAll(vbox); ne(scene); (); } }


编译运行的效果如图



Figure 13-4



所示。



Figure 13-4 Table Populated with Data


文档



实用




Description of



新增行




Figure 13-4



中的表格包 含了


5


行,目前还无法更改。



可以使用文本框来输入


First Name, Last Name




Email


列中的容。


Text Field


控件 使你的应用能够接收用户


的输入。


Example 13-7< /p>


创建了三个文本框并分别定义了提示语,还创建了一个


Add


按钮。




Example 13-7 Using Text Fields to Enter New Items in the Table


final TextField addFirstName = new TextField(); mptText(


Width(fWidth()); final TextField addLastName = new TextField();


Width(fWidth()); mptText(


TextField addEmail = new TextField(); Width(fWidth());


mptText(< /p>


EventHandler() { Override public void handle(ActionEvent e) { (new


Person( t(), t(), t() )); t(


t(



文档


-


-


-


-


-


-


-


-



本文更新与2021-02-13 19:39,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/652322.html

JavaFX2.0表格框TableView的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文