首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用属性保存和加载JavaFX TableView

JavaFX TableView是JavaFX框架中的一个组件,用于展示和编辑表格数据。它提供了一种方便的方式来显示和操作数据,可以在表格中显示多列数据,并支持对数据进行排序、过滤和编辑。

使用属性保存和加载JavaFX TableView的过程如下:

  1. 创建一个JavaFX TableView对象,并定义表格的列和数据模型。可以使用TableColumn类来定义每一列的属性,使用ObservableList作为数据模型。
代码语言:txt
复制
TableView<Person> tableView = new TableView<>();
TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
tableView.getColumns().add(nameColumn);

ObservableList<Person> data = FXCollections.observableArrayList();
tableView.setItems(data);
  1. 创建一个属性对象,用于保存TableView的状态。可以使用Properties类来定义属性。
代码语言:txt
复制
Properties properties = new Properties();
  1. 在需要保存TableView状态的时候,将TableView的相关属性保存到属性对象中。
代码语言:txt
复制
properties.setProperty("table.columns", tableView.getColumns().size() + "");
for (int i = 0; i < tableView.getColumns().size(); i++) {
    TableColumn<Person, ?> column = tableView.getColumns().get(i);
    properties.setProperty("table.column." + i + ".name", column.getText());
    properties.setProperty("table.column." + i + ".width", column.getWidth() + "");
}
  1. 在需要加载TableView状态的时候,从属性对象中读取相关属性,并重新创建TableView的列和数据模型。
代码语言:txt
复制
int columnCount = Integer.parseInt(properties.getProperty("table.columns"));
for (int i = 0; i < columnCount; i++) {
    String columnName = properties.getProperty("table.column." + i + ".name");
    double columnWidth = Double.parseDouble(properties.getProperty("table.column." + i + ".width"));
    TableColumn<Person, ?> column = new TableColumn<>(columnName);
    column.setPrefWidth(columnWidth);
    tableView.getColumns().add(column);
}

// 加载数据模型
tableView.setItems(data);

通过以上步骤,我们可以将JavaFX TableView的列和数据模型保存到属性对象中,并在需要的时候重新加载。这样可以方便地保存和加载TableView的状态,使用户在下次打开应用程序时能够恢复之前的表格布局和数据。

推荐的腾讯云相关产品:腾讯云数据库(TencentDB)、腾讯云对象存储(COS)、腾讯云容器服务(TKE)。

  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库服务,支持多种数据库引擎,包括MySQL、SQL Server、MongoDB等。链接地址:https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):提供安全可靠的云端存储服务,适用于存储和管理各种类型的数据,包括图片、音视频、文档等。链接地址:https://cloud.tencent.com/product/cos
  • 腾讯云容器服务(TKE):提供全托管的容器服务,支持快速部署和管理容器化应用,具备高可用性和弹性伸缩能力。链接地址:https://cloud.tencent.com/product/tke
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

模型保存加载使用

[阿里DIN] 模型保存加载使用 0x00 摘要 Deep Interest Network(DIN)是阿里妈妈精准定向检索及基础算法团队在2017年6月提出的。...本系列文章会解读论文以及源码,顺便梳理一些深度学习相关概念TensorFlow的实现。 本文是系列第 12 篇 :介绍DIN模型的保存加载使用。...因为TensorFlow会将计算图的结构图上参数取值分开保存,所以保存后在相关文件夹中会出现3个文件。 下面就是DIN,DIEN相关生成的文件,可以通过名称来判别。...这种模型权重数据分开保存的情况,使得发布产品时不是那么方便,所以便有了freeze_graph.py脚本文件用来将这两文件整合合并成一个文件。 freeze_graph.py是怎么做的呢?...Op节点从图中剥离掉; 使用tf.train.writegraph保存图,这个图会提供给freeze_graph使用; 再使用freeze_graph重新保存到指定的文件里; 0x02 DIN代码 因为

1.4K10
  • OpenCV-加载保存图片

    OpenCV中有很方便的加载保存图片的函数,这里总结一下,通过本小节你可以学到下面三个函数: cv.imread(),加载图片; cv.imshow(),显示图片; cv.imwriter(),保存图片...输出结果: 通过图片文件路径加载图片将图片转换为ndarray数组,此时我们就可以通过获取ndarray数组属性来得到图片信息。...但是当你执行这段代码的时候,屏幕会一闪而过,此时我们需要使用waitKey函数,注意此时waitKey函数在图像视频中应用含义是不一样的,下面先以图像角度来介绍waitKey函数,后面介绍视频读写的时候在介绍在视频中应用...03 cv.imwrite() 使用cv.imwrite()函数保存处理后的图片,和加载图片一样简单。...我们直接使用即可,为了效果明显,这里使用cv.cvtColor()函数,你可以简单理解成对图像做颜色上的变换,第一参数为ndarray数组图片,第二个参数就是指定图片做何种变换,里面还有其他的一些属性可以尝试

    1.4K10

    OpenCV-加载保存视频

    OpenCV不仅能够很方便的加载保存图片,而且对于视频的加载保存也可以很简单的通过OpenCV中的函数轻松实现。本篇主要介绍如何加载保存视频。...01 加载并显示视频 前面介绍了加载图像,我们可以直接通过imread()函数加载图像,返回一个使用ndarray数组表示的像素矩阵。...接下来看看如何使用OpenCV打开视频文件并显示,其实上面的类似。首先准备一个视频文件,此时我的视频文件叫做"love.avi",我将文件放在当前目录下。 ? 执行效果: ?...这里需要说明cv.waitKey函数,在图像的加载保存中,我们介绍过此函数,但是通过前面的效果,也可以看出waitKey函数在视频中和在图像中是不一样的,当然参数值也是三种,正整数,负整数以及0。...02 保存视频 保存视频有一些麻烦,需要指定保存视频的编码、每一帧时间间隔以及每一帧的大小,保存视频编码后面会介绍,目前按照代码中的执行即可。 ? ? 看见"my_love.avi"文件。

    2.3K00

    Using JavaFX UI Controls 12 Table View

    很多JavaFX SDK API种的类为在表格表单中呈现数据。在JavaFX 应用中对创建表格最重要的是TableView, TableColumnTableCell这三个类。...定义数据模型( Data Model) 当你要在JavaFx应用中创建一个表格,最好先创建一个类来定义数据模型提供将来表格交互的方法属性。例12-3中定义了Person类来定义数据地址簿。...下一步就是将这些数据表格的列之间建立联系。你可以像例12-5中那样通过对每个数据元素的属性定义来实现。...单元工程通过使用PropertyValueFactory类来实现, 表格列的firstName, lastNameemail 属性来引用Person中相应的属性的 。...表格的数据编辑 TableView类不仅能够渲染表格式的数据,还能提供编辑的能力。使用 setEditable  方法来开启表格编辑模式。

    11.4K20

    数据的异步加载图片保存

    把从网络获取的图片数据保存在SD卡上, 先把权限都加上 网络权限 android.permission.INTERNET SD卡读写权限 android.permission.MOUNT_UNMOUNT_FILESYSTEMS...setAdapter()方法,设置一个适配器 新建一个包 Adapter,新建一个适配器ContactsAdapter继承系统的BaseAdapter 新建一个domain包,新建一个Contact的javaBean,属性...,image,有参构造函数 新建一个service包,新建一个ContactService业务类,新建一个静态方法getContacts(),获取联系人的,getImages()获取图片 开启新线程,使用...ContactService.getContacts()里面实现获取网络数据,返回List对象,使用Handler传递数据给主线程 创建缓存图片的SD卡目录 获取File对象,通过new File(),...anr,所以要异步加载图片 异步加载保存图片 开启线程执行加载图片的代码 在ContactService业务类里实现getImage()方法,通过get方式读取图片,得到Uri对象,参数:图片路径,

    1.1K20

    使用文件目录属性属性

    使用文件目录属性属性%Library.File类还提供了许多类方法,可以使用这些方法来获取有关文件目录的信息,或者查看或设置它们的属性属性。...检查文件目录是否存在要确定给定文件是否存在,请使用Existes()方法并指定文件名作为参数。...但是,在Unix中,为所有者、组用户指定不同的权限。要更好地控制文件目录权限,请参阅查看或设置文件目录属性一节。...查看设置文件目录属性要在更详细的级别查看或设置文件或目录的属性,请使用%Library.File的Attributes()SetAttributes()方法。...查看其他文件目录属性%Library.File的其他类方法允许检查文件目录的各种其他属性

    68320

    Tensorflow笔记:模型保存加载Fine-tune

    前言 尝试过迁移学习的同学们都知道,Tensorflow的模型保存加载有不同格式,使用方法也不一样,新手会觉得乱七八糟,所以本文做一个梳理。从模型的保存加载,再到使用,力求理清这个流程。 1....这样就可以直接加载图结构“参数”了。 1.4 saved_model模式 虽然saved_model也支持模型加载,并进行迁移学习。...加载 下面说如何加载,checkpointpb两种模式的加载方法也不一样。...下面分别说 2.1 checkpoint加载(略烦) checkpoint模式的网络结构变量是分来保存的,加载的时候也需要分别加载。而网络结构部分你有两种选择:1....Fine-tune 最后不管保存还是加载模型,多数情况都是为了能够进行迁移学习。其实大部分无非就是将模型加载进来之后,使用某一个节点的值,作为我们后续模型的输入呗。

    1.8K41

    使用JSON保存加载Python数据【Programming(Python)】

    实际上,两者非常相似:如果您熟悉Python列表字典,那么JSON很适合您。 以JSON格式存储数据 如果您的应用程序需要存储一些复杂的数据,则可以考虑使用JSON。...虽然您以前可能曾使用自定义文本配置文件或数据格式,但JSON为您提供了结构化的递归存储,而Python的JSON模块提供了将这些数据传入传出应用程序所需的所有解析库。...您可以随意添加,删除更新它们包含的数据。 此格式是应用程序经常使用的数据的理想存储。...以JSON格式保存数据 如果要存储在词典中的数据是需要在应用程序退出后保留的用户数据,则必须将数据写入磁盘上的文件中。...从您的应用程序中保存数据就是这么简单,而最好的部分是数据是结构化的可预测的。

    5.6K00

    Swift 的懒加载计算型属性

    加载 常规(简化)写法 懒加载属性用 var 声明 lazy var name: String = { return "BY" }() 完整写法 lazy var name: String...如OC的懒加载不同的是 swift 懒加载闭包只调用一次,再次调用该属性时因为属性已经创建,不再执行闭包。...} } 计算型属性本质是重写了 get 方法,其类似一个无参有返回值函数,每次调用该属性都会执行 return 通常这样使用 struct Cuboid { var width = 0.0...fourByFiveByTwo is \(fourByFiveByTwo.volume)") // Prints "the volume of fourByFiveByTwo is 40.0" 两者对比 相同点 使用方法完全一致...都是用 var 声明 不同点 实现原理不同 懒加载是第一次调用属性时执行闭包进行赋值 计算型属性是重写 get 方法 调用 {}的次数不同 懒加载的闭包只在属性第一次调用时执行 计算型属性每次调用都要进入

    1.8K50

    【TensorFlow2.x开发—基础】 模型保存加载使用

    保存整个模型时,有两种格式可以实现,分别是SaveModelHDF5;在TF2.x中默认使用SavedModel格式。...格式保存模型,保存后是xxx.h5的文件 model.save("my_model.h5") 1.2)加载使用模型 加载模型: # 重新创建完成相同的模型,包括权值优化程序等 new_model =...保存使用tf.keras.models.loda_model加载模型;这种方式于Tensorflow Serving兼容。...2.2)加载使用模型 加载保存好的模型: ​ 使用模型: ​ 代码版 HDF5格式: # 导入Tensorflow依赖项 import os import tensorflow as tf from...SaveModelHDF5;两种都是使用model.save() 保存模块,使用tf.keras.models.loda_model加载模型; HDF5格式 保存模型后,生成xxx.h5,比较常用。

    4.5K00

    使用VBA加载宏小心 Workbook.FullName 属性

    再仔细一看,会发现我故意将一些字母大小写替换了,文件能正确打开,但FullName返回的字符串原始字符串有差异了。...,并把FullName属性设置为修改后的名称(文件名为什么被修正了?)。...但是,存在这样一种场景: 对经常使用VBA的人来说,会写一些常用的功能制作为加载使用使用加载宏的应该知道,一旦加载宏被移动了位置,会出现如下提示: ?...说明加载宏在设置加载的时候,路径就被保存起来了,在这种情况下,如果路径中仅仅是修改了字母的大小写(测试文件名修改没有影响),加载宏打开时不会出问题的,但是,路径其实已经被修改了。...我个人有这样一个使用习惯,由于需要使用的VBA功能较多,我将一些功能分类编写了不同的宏文件,这些文件存放在同一个文件夹里,只设置加载一个加载宏。

    1.5K40

    完美实现保存加载easyui datagrid自定义调整列宽位置隐藏属性功能

    需求&场景   例表查询是业务系统中使用最多也是最基础功能,但也是调整最平凡,不同的用户对数据的要求也不一样,所以在系统正式使用后,做为开发恨不得坐在业务边上,根据他们的要求进行调整,需要调整最多就是列的位置宽度...实现方法   因为我这边的项目都是用easyui datagrid开发的,datagrid提供了对每一列宽度的手工调整位置的拖动功能,但是并没有提供保存修改后属性功能,这里我们就需要对datagrid...进行扩展,扩展新增一个保存功能,将修改后的属性保存到浏览器的localstorage,再新增一个初始化的时候读取localstorage的属性进行调整,就可以实现想要的功能了。...现在还需要自定义扩展保存加载的功能(columns-reset.js) (function ($) { function buildMenu(target) { const state =...$(target).data('datagrid'); //冻结列不允许修改属性位置 //const fields = $(target).datagrid('getColumnFields

    1.7K30

    JavaFX-TableView详解

    前言 最近在着手一个学生管理系统的编写,涉及到TableView使用,这前前后后的也有了些经验想法想要记录分享一下(事实上我正在想要用html网页代替界面),更多的是学习之用。.../ 官方的文档:http://docs.oracle.com/javafx/2/ui_controls/table-view.htm TableView列的两种数据形式: 一种是维护类的TableColumn...增加列,删除列 这就不仅仅要删除集合中的数据,还要从表格里面的Columns集合中删除相应的数据才可以,或许你还会在删除增加中加入一定的判断来保证操作的正确性: table.getColumns()....// 接受变化,否则报错 // 处理列拖动后的事件 if (c.wasRemoved()) { // 定义一个保存了现在列排序的集合...Map>, String>> newList = new ArrayList(table.getColumns()); // 定义一个保存了原来列排序的集合

    3.4K60
    领券