前言
目前我能用javafx做的东西都很少,还跟在大佬屁股后面学习.说不定写着写着就脱坑停更!
绑定tableView
- 需求是绑定几个测试参数到
tableView
下如图
- 结构为:
tabPane
->Tab
->tableView
-> 若干个TableColumn
第一步先设置fx:id
tableView
上肯定需要fx:id
,然后在给每一列绑定fx:id
,如下图
第二步,编写相关联的实体
由于我的tableview
中显示的数据封装在了实体类中,所以这里我们需要先定义实体,实体的定义如下:
1 | import javafx.beans.property.DoubleProperty; |
这里我继承了父类,父类如下:
1 | package com.yczr.threebody.pc.entity; |
顺便说一下这里遇到的坑!!!!!
- 定义需要绑定的值时,属性还是用的以前的类型,比如Double类型还是用的Double,但是在javafx中Double变为了javafx中的封装类型DoubleProperty,其它的数据类型应该也是这样;
- 实体类我用的随机数进行赋值,代码如下:
1 | public static Double getRandom(int max){ |
其中的坑是真的多!,我没有没父类Commission
中的属性设置默认值,导致加载数据时为空
第三步,在代码中与fx:id
绑定
虽然在fxml文件
中设置了fx:id
,但是在实际的程序中并没有做任何相关联的绑定,所以这一步就需要进行相关的绑定;
- 定义数据源
1 | private ObservableList<TradeOverviewEntity> exchangeData = FXCollections.observableArrayList(); |
- 绑定
TableView
1 |
|
- 绑定列
TableColumn
1 |
|
加载数据
- 前面虽然绑定了数据源,但是并没有进行实际的赋值,下面先把值和列对应上
1 | private void initBean(){ |
- 对数据进行赋值
1 | private void loadData(){ |
- 初始化加载数据
1 |
|
效果
监听TextField变化
目的是为了完成界面简单的密码强度判断,如下界面
绑定fxid
其它的fxid就不一一绑定了
编写监听方法
1 | public void testyy() { |
调用监听
监听需要在页面初始化的时候就进行加载,所以在initialize()
中吊起
1 |
|