• JavaFX 表格数据显示简单Demo


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

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

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

     1     @FXML
     2     private ResourceBundle resources;
     3 
     4     @FXML
     5     private URL 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     private Label nowDate;
    24 
    25     @FXML
    26     private TableColumn<MaterialInfo, String> seqnumCol;
    27 
    28     @FXML
    29     private TableColumn<MaterialInfo, String> shortCodeCol;
    30 
    31     @FXML
    32     private Button showData;
    33 
    34     @FXML
    35     private Button udateDate;
    36 
    37     private List<MaterialInfo> materialList = new ArrayList<MaterialInfo>(); //放置数据的集合
    38     
    39     
    40 
    41     ObservableList<MaterialInfo> list = FXCollections.observableArrayList(); //javaFX 的数据集合

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

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

    然后初始化Sence

    1 @Override
    2     public void initialize(URL location, ResourceBundle resources) {
    3         Date date = new Date();
    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 void configTableView() {
     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 void initButton() {
    18         
    19         showData.setOnAction(new EventHandler<ActionEvent>() {
    20             
    21             @Override
    22             public void handle(ActionEvent arg0) {
    23                 dataTable.getItems().clear();
    24                 showData();
    25             }
    26         });
    27         udateDate.setOnAction(new EventHandler<ActionEvent>() {
    28 
    29             @Override
    30             public void handle(ActionEvent arg0) {
    31                 updateData();//该方法还没有做,以后补上
    32             }
    33             
    34             
    35         });
    36     }
    37 
    38 
    39     protected void updateData() {
    40         // TODO Auto-generated method stub
    41         
    42     }
    43 
    44     /**
    45      * 展示数据
    46      */
    47     protected void showData() {
    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 = new Date();
    67         String nowDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:").format(date);
    68         for(int i=0;i<10;i++){
    69             MaterialInfo mi = new MaterialInfo();
    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         return miList;
    79     }

    至此结束,程序运行成功。效果图如下所示:

    高质量的代码就是对程序自己最好的注释。当你打算要添加注释时,问问自己,“我如何能改进编码以至于根本不需要添加注释?”改进你的代码,然后才是用注释使它更清楚。
  • 相关阅读:
    彻底卸载MySql
    MySql和SQL Server数据类型 对比
    easyui combobox 中实现 checkbox
    浅谈研发项目经理
    软件公司项目经理岗位职责
    input text 的事件及方法
    c#解析HTML
    SQL SERVER 数据库查询表和字段信息语句
    Silverlight动态载入调用XAML资源
    几种设计模式简介(转载)
  • 原文地址:https://www.cnblogs.com/endy-blog/p/3665377.html
Copyright © 2020-2023  润新知