关键词不能为空

当前您在: 主页 > 英语 >

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的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文