JavaFX 表格数据显示简单Demo

摘要:
最近业务需求,需要点击一个按钮然后显示数值,初涉JavaFX,查看了相关的文档,简单的做了一个Demo1、首先用Javasecenebuilder做出一个页面,页面如下:设置好各个组件的fx:id。

最近业务需求,需要点击一个按钮然后显示数值,初涉JavaFX,查看了相关的文档,简单的做了一个Demo

1、首先用Java secene builder做出一个页面,页面如下:

JavaFX 表格数据显示简单Demo第1张

设置好各个组件的fx:id。如下所示:

1 @FXML
2     privateResourceBundle resources;
3 
4 @FXML
5     privateURL location;
6 
7 @FXML
8     private TableColumn<MaterialInfo, String>codeCol;
9 
10 @FXML
11     private TableColumn<MaterialInfo, String>createDateCol;
12 
13 @FXML
14     private TableView<MaterialInfo> dataTable; //tableView
15 
16 @FXML
17     private TableColumn<MaterialInfo, String>isActiveCol;
18 
19 @FXML
20     private TableColumn<MaterialInfo, String>nameCol;
21 
22 @FXML
23     privateLabel nowDate;
24 
25 @FXML
26     private TableColumn<MaterialInfo, String>seqnumCol;
27 
28 @FXML
29     private TableColumn<MaterialInfo, String>shortCodeCol;
30 
31 @FXML
32     privateButton showData;
33 
34 @FXML
35     privateButton udateDate;
36 
37     private List<MaterialInfo> materialList = new ArrayList<MaterialInfo>(); //放置数据的集合
38     
39     
40 
41     ObservableList<MaterialInfo> list = FXCollections.observableArrayList(); //javaFX 的数据集合

初始化该Sence,其中定义的MterialInfo是放置每列的,具体如下:

1 privateSimpleStringProperty num;
2     privateSimpleStringProperty name;
3     privateSimpleStringProperty code;
4     privateSimpleStringProperty shortCode;
5     
6     privateSimpleStringProperty isActive;
7     privateSimpleStringProperty createDate;
8     
9     publicString getNum(){
10         returnnum.get();
11 }
12     
13     publicString getName(){
14         returnname.get();
15 }
16     
17     publicString getCode(){
18         returncode.get();
19 }
20     
21     publicString getShortCode(){
22         returnshortCode.get();
23 }
24     
25     publicString getIsActive(){
26         returnisActive.get();
27 }
28     
29     publicString getCreateDate(){
30         returncreateDate.get();
31 }
32     
33     public ObservableValue<String>numProperty(){
34         returnnum;
35 }
36     public ObservableValue<String>nameProperty(){
37         returnname;
38 }
39     public ObservableValue<String>codeProperty(){
40         returncode;
41 }
42     public ObservableValue<String>shortCodeProperty(){
43         returnshortCode;
44 }
45     public ObservableValue<String>isActiveProperty(){
46         returnisActive;
47 }
48     public ObservableValue<String>createDateProperty(){
49         returncreateDate;
50 }
51     
52     public voidsetNum(String num){
53         this.num = newSimpleStringProperty(num);
54         
55 }
56     public voidsetName(String name){
57         this.name = newSimpleStringProperty(name);
58         
59 }
60     public voidsetCode(String code){
61         this.code = newSimpleStringProperty(code);
62         
63 }
64     public voidsetShortCode(String shortCode){
65         this.shortCode = newSimpleStringProperty(shortCode);
66         
67 }
68     public voidsetIsActive(String isActive){
69         this.isActive = newSimpleStringProperty(isActive);
70         
71 }    
72     public voidsetCreateDate(String createDate){
73         this.createDate = newSimpleStringProperty(createDate);
74         
75 }
76     

然后初始化Sence

1 @Override
2     public voidinitialize(URL location, ResourceBundle resources) {
3         Date date = newDate();
4         String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
5 nowDate.setText(now);
6 dataTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
7 configTableView();
8 initButton();
9     }
1 /**
2 * 配置表格,绑定表格的每列
3      */
4     private voidconfigTableView() {
5         seqnumCol.setCellValueFactory(new PropertyValueFactory<MaterialInfo,String>("num"));
6         nameCol.setCellValueFactory(new PropertyValueFactory<MaterialInfo,String>("name"));
7         codeCol.setCellValueFactory(new PropertyValueFactory<MaterialInfo,String>("code"));
8         shortCodeCol.setCellValueFactory(new PropertyValueFactory<MaterialInfo,String>("shortCode"));
9         isActiveCol.setCellValueFactory(new PropertyValueFactory<MaterialInfo,String>("isActive"));
10         createDateCol.setCellValueFactory(new PropertyValueFactory<MaterialInfo,String>("createDate"));
11 dataTable.setItems(list);
12 }
13 
14     /**
15 * 初始化按钮功能,绑定按钮的事件
16      */
17     private voidinitButton() {
18         
19         showData.setOnAction(new EventHandler<ActionEvent>() {
20             
21 @Override
22             public voidhandle(ActionEvent arg0) {
23 dataTable.getItems().clear();
24 showData();
25 }
26 });
27         udateDate.setOnAction(new EventHandler<ActionEvent>() {
28 
29 @Override
30             public voidhandle(ActionEvent arg0) {
31                 updateData();//该方法还没有做,以后补上
32 }
33             
34             
35 });
36 }
37 
38 
39     protected voidupdateData() {
40         //TODO Auto-generated method stub
41         
42 }
43 
44     /**
45 * 展示数据
46      */
47     protected voidshowData() {
48         if(generateDate()!=null){
49             materialList =generateDate();
50 }
51         System.out.println(materialList.size()+"----"+materialList.get(0).getName());
52 list.addAll(materialList);
53 dataTable.setItems(list);
54 }
55 
56     /**
57 * 生成数据
58 * @return
59      */
60     private List<MaterialInfo>generateDate() {
61         List<MaterialInfo> miList = new ArrayList<MaterialInfo>();
62         String name = "material";
63         String code = "1101";
64         String shortCode = "A";
65         String isActive = "是";
66         Date date = newDate();
67         String nowDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:").format(date);
68         for(int i=0;i<10;i++){
69             MaterialInfo mi = newMaterialInfo();
70             mi.setNum(i+1+"");
71             mi.setName(name+i);
72             mi.setCode(code+i);
73 mi.setIsActive(isActive);
74             mi.setShortCode(shortCode+i);
75             mi.setCreateDate(nowDate+i);
76 miList.add(mi);
77 }
78         returnmiList;
79     }

至此结束,程序运行成功。效果图如下所示:JavaFX 表格数据显示简单Demo第2张

免责声明:文章转载自《JavaFX 表格数据显示简单Demo》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SVN命令行使用总结妙招教你Office Word 2007文档另存为PDF文件[转]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shiro 框架基本讲解【转载】

shiro 框架基本讲解【转载】 什么是权限管理: 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问...

springboot实现redis的分布式锁

文章目录 1.redis的应用场景 2.redis的分布式锁 3.通过redisson框架实现redis分布式锁 1.redis的应用场景 商品秒杀 点赞等 现在有一个减少商品的场景,我们很容易能写出其代码 @Controller @ResponseBody public class Test { @Autowired priv...

GSON实现String和JSON转换

实现JSON字符串转换为JSON对象的方式很多。今天主要说一下最近在项目中用到的一个。觉得很方便。推介给大家 代码: import com.google.gson.Gson;import com.google.gson.JsonObject;public class JsonDemo { public static void main(String[] a...

写个C#命令行参数解析的小工具

最近测试工作做的比较多因此时常要创建一些控制台类型的应用程序。因为程序有不同的参数开关,需要在程序启动的时候通过命令行来给程序传递各种开关和参数。直接操作args有些不方便,所以就写了个解析参数的小工具来处理各种参数。 参数实体: 1 public class CommandLineArgument 2 { 3 List<Comma...

SpringBoot Controller接收参数的几种常用方式

第一类:请求路径参数 1. @PathVariable 获取路径参数。即url/{id}这种形式。 2. @RequestParam 获取查询参数。即url?name=这种形式 例子 GEThttp://localhost:8080/demo/123?name=suki_rong对应的java代码 @GetMapping("/demo/{id}") pub...

MSSQL—字符串分离(Split函数)

前面提到了记录合并,有了合并需求肯定也会有分离需求,说到字符串分离,大家肯定会想到SPLIT函数,这个在.NET,Java和JS中都有函数,很可惜在SQL SERVER中没有,我们只能自己来写这么一个函数。 首先来分析一下怎么写这个函数,以之前合并的字符串为例,“张三,李四,王五,钱六,赵七,Tom,Amy,Joe,Leo”,现在要将此字符串按照“,”进行...