解析 FXML 表格的使用,图书列表功能的实现

该博客介绍了如何利用FXML解析并实现图书列表的功能。首先,配置FXML并安装JavaFXSceneBuilder,接着创建并设计FXML文件及对应的Controller类。在Controller类中,通过setCellValueFactory方法绑定数据库字段到TableView的各列,实现数据的展示。当用户输入书名并点击查询时,程序将从数据库中查找相应图书信息并更新表格。如果未找到书籍,则显示提示信息。此外,还提供了返回按钮,用于关闭当前窗口并返回上一菜单。

解析 FXML 表格的使用,图书列表功能的实现

1.基本操作

  • 安装

首先要配置FXML,安装JavaFX Scene Builder ,这里可以参考网上教程

  • 创建

FXML使用的基本步骤(基本)

  1. xxx.fxml文件
  2. xxxApplication文件
  3. xxxControll文件

扩展

  1. 可以建立css文件,在文件中写自己的css样式

2.使用方法

  • 第一步: 选中fxml文件右击选择Open In SceneBuilder ,即可打开视图页面,如图

  • 第二步骤

然后选择tableview 创建表格,在设计完表格之后,选择view中show sample controller skeleton 复制代码,粘贴到xxxControll文件中

  • xxxControll中展示的文件
public class userSelectControll {
    @FXML
    private TextField selectbook;
    @FXML
    private Button commit;
    @FXML
    private Button backbtn;
    @FXML
    private TableColumn<book, String > pressCol;
    @FXML
    private TableColumn<book, Integer> idCol;
    @FXML
    private TableColumn<book, String > authorCol;
    @FXML
    private TableColumn<book, String > nameCol;
    @FXML
    private TableView<book> myTable;
    @FXML
    private TableColumn<book, Integer> borrowCol;
    @FXML
    private TableColumn<book, Float> priceCol;
    @FXML
    void commitClick(ActionEvent event)  {
​
        String sb=selectbook.getText();
        System.out.println(sb);
        System.out.println("查找如下:");
        if (bookDao.selectAllStudent(sb).isEmpty()==false){
            ArrayList<book> list = bookDao.selectAllStudent(sb);
            idCol.setCellValueFactory(new PropertyValueFactory<>("bid"));
            nameCol.setCellValueFactory(new PropertyValueFactory<>("bname"));
            authorCol.setCellValueFactory(new PropertyValueFactory<>("author"));
            pressCol.setCellValueFactory(new PropertyValueFactory<>("publish"));
            priceCol.setCellValueFactory(new PropertyValueFactory<>("bprice"));
            borrowCol.setCellValueFactory(new PropertyValueFactory<>("isborrow"));
            myTable.getItems().clear();//清空表格里面所有数据
            myTable.getItems().addAll(list);
            userMenuApplication open1=new userMenuApplication();
            try {
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else{
            Alert alert = new Alert(Alert.AlertType.INFORMATION, "未查找到此书!");
            alert.showAndWait();
            try {
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    @FXML
    void backbtnClick(ActionEvent event) throws Exception {
        userMenuApplication open = new userMenuApplication();
        open.start(new Stage());
        userSelectApplication.st.hide();//选择后开启一个新的窗体的同时,关闭当前窗体
    }
}
​
​

  • 解析表格的使用
  1. 在图二设计视图的使用,每个表格对应的id和fxid 都要设置,并且要一致,Contrller class 要选择自己创建的xxxcontrller

     

  1. 表格中:idCol.setCellValueFactory(new PropertyValueFactory<>("bid"));
  2. idCol 对应的是自己在图二设置的id,bid对应的是要展示数据库中的字段名称
  3. tableColumn中传入的泛型第一个是对象,第二个是数据类型,注意如果数据类型是int 要写成Integer 引用数据类型
@FXML
private TableColumn<book, Integer> borrowCol;

  1. 关联的是自己要打印在报个中的对象
@FXML
private TableView<book> myTable;

  1. 绑定的是图书表的字段名,通过这个方法,可以将获取到的数据库字段中的属性绑定到表格中
idCol.setCellValueFactory(new PropertyValueFactory<>("bid"));

  1. 展示表格,注意这里要先清空在展示表格信息,不然内容会重复,list是一个集合,存放图书对应的数据
myTable.getItems().clear();//清空表格里面所有数据
myTable.getItems().addAll(list);

  1. book 基础包的封装,返回的是book类型的集合

     

这样就可以通过fxml展示一个表格,结果:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值