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

如何将TableView (JavaFX11)拆分为n个部分以另存为png

在JavaFX 11中,将TableView拆分为n个部分并将其另存为PNG图像可以通过以下步骤完成:

  1. 创建一个TableView对象并加载数据。 TableView是JavaFX中用于显示表格数据的UI控件。您可以使用ObservableList或者其他数据源来填充TableView的内容。
代码语言:txt
复制
TableView tableView = new TableView();

// 设置表格列和数据
TableColumn column1 = new TableColumn("Column 1");
TableColumn column2 = new TableColumn("Column 2");
// ... 添加更多的列

tableView.getColumns().addAll(column1, column2);

// 填充表格数据
ObservableList<ObservableList<String>> data = FXCollections.observableArrayList();
// ... 添加数据到data

tableView.setItems(data);
  1. 将TableView分成n个部分。为了将TableView分成n个部分,您可以根据表格的行数和列数计算每个部分的大小。您可以使用TableView的getItems()方法来获取表格的数据项,使用getColumns()方法来获取表格的列数。
代码语言:txt
复制
int rowCount = tableView.getItems().size();
int colCount = tableView.getColumns().size();
int numParts = n; // 拆分成n个部分

int rowsPerPart = rowCount / numParts; // 每个部分的行数
int remainingRows = rowCount % numParts; // 剩余的行数

// 根据每个部分的行数和剩余的行数,计算每个部分的行数范围
List<Range<Integer>> rowRanges = new ArrayList<>();
int startRow = 0;
for (int i = 0; i < numParts; i++) {
    int endRow = startRow + rowsPerPart - 1;
    if (i < remainingRows) {
        endRow++; // 如果还有剩余的行数,将其分配到部分中
    }
    rowRanges.add(new Range<>(startRow, endRow));
    startRow = endRow + 1;
}

// 将TableView拆分为每个部分
List<TableView> tableParts = new ArrayList<>();
for (Range<Integer> rowRange : rowRanges) {
    TableView part = new TableView();
    part.getColumns().addAll(column1, column2);
    part.setItems(tableView.getItems().subList(rowRange.lowerEndpoint(), rowRange.upperEndpoint() + 1));
    tableParts.add(part);
}
  1. 将每个部分保存为独立的PNG图像。要保存TableView的内容为PNG图像,您可以使用JavaFX的Snapshot API。对于每个部分,您可以创建一个WritableImage,并使用TableView的snapshot()方法将其内容绘制到WritableImage上。然后,您可以将WritableImage保存为PNG文件。
代码语言:txt
复制
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.image.WritableImage;
import javax.imageio.ImageIO;
import java.io.File;

// 将每个部分保存为独立的PNG图像
for (int i = 0; i < tableParts.size(); i++) {
    TableView part = tableParts.get(i);

    // 创建一个WritableImage,并将TableView的内容绘制到其中
    WritableImage image = new WritableImage((int) part.getWidth(), (int) part.getHeight());
    part.snapshot(null, image);

    // 保存为PNG文件
    File file = new File("table_part_" + (i+1) + ".png");
    try {
        ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png", file);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

完成上述步骤后,您将成功将TableView拆分为n个部分,并将每个部分保存为独立的PNG图像文件。在这个过程中,您使用了JavaFX的TableView控件和Snapshot API来处理表格数据和图像的操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

入行十余载,一字一句敲出数控行业的经验和总结

铜公 分析高度宽度  能不能加工到位 。   有些斜度的又很高很大的工件用加长杆的刀头是可以锣到位的,拿不准能不能铣到位?要是能锣到位却了个大铜公不是。。。。。。   ...有些能够一大身公的还是了好多个小公拿不准。1 H0 S, `/ {- c; x 有些可以直接线割而不用多个的地方拿不准。...有镜像A01 A02 的两件东西是完了一件A01另外A02就直接镜像过去另存为名称吗?那里面的铜公名称全部要改过?导出铜公的时候导出A01的就可以吗?...有直身部位的一刀过完而不用等高节省时间提高效率。粗公直接复制精公改刀具就可以。如果有镜像的话就镜像后改程序名再重新生成后处理另存为。...宗旨:最短的时间干出最漂亮的活、效率和安全缺一不可 image.png

60320

开源项目——『看知乎』iOS 版

实现功能 文章推荐: 「看知乎」的答案推荐文章为单位,每天在三时段发布三篇,名字分别为昨日最新(yesterday)、近日热门(recent)和历史精华(archive),每篇推荐32~40答案不等...项目结构.png 项目主要是分为两大模块,即首页模块(Home)和用户模块(TopUsers)。Global 目录中是我自己封装的几个简单类库和一些常量。...TableView(或者一 ScrollView 一 TableView) 的滚动,这是不科学的。...View 和 Model 之间的数据绑定,可以在 View 中设置一 Model 为参数的方法,Controller 中只要调用这个方法即可,具体的绑定逻辑写在 View 中。...我『看知乎』项目中的代码为例来说明一下我自己比较喜欢的做法。

1.2K50
  • 【Java 】包装类详解:从基本概念到实战技巧

    int类型转换成包装类,如何将包装类转换成int类型。...可以分为手动装箱和自动装箱: 是为了使用专门为对象设计的API和特性 下面 int 类型为例: int i = 10; // 定义一 int 基本类型值 Integer x = new Integer...(i); //手动装箱 Integer y = i; // 自动装箱 3.2 箱 把包装类对象为基本数据类型 可以分为手动箱和自动箱 一般是因为需要运算,Java中的大多数运算符是为基本数据类型设计的...比较、算术等 下面 int 类型为例: Integer j = new Integer(8); // 定义一 Integer 包装类对象,值为8 int m = j.intValue(); // 手动箱...int 类型 int n = j; // 自动箱为 int 类型 注: 由于我们经常要做基本类型与包装类之间的转换,从JDK5.0 开始,基本类型与包装类的装箱、箱动作可以自动完成 注意:只能与自己对应的类型之间才能实现自动装箱与

    10010

    AsyncDisplayKit 2.0 教程:入门「译」

    在这两部分 AsyncDisplayKit 2.0 教程中,你将掌握使用ASDK构建一实用的和动态的应用程序的所有要素。在第一部分中,你将要学习一些在你构建应用程序时可以用到的宏观思想。...构建并运行查看包含 UITableView 动物列表的应用程序。...view-layer-480x229.png 这种抽象的情况下扩展 ASDisplayNode:您可以将它们视为包装一 view,就像在 view 上添加一 layer 一样。...用下面的代码替换 -tableView:cellForRowAtIndexPath: 适应新的规则。...image.png 真是一流畅的 tableView!一旦你开始做了,那就让我们做的更好吧! 无限滚动 在大多数应用中,服务器的数据点的个数往往会多于当前 tableView 中显示的单元格数量。

    2.2K20

    【转】架构漫谈(八):从架构的角度看如何写好代码

    当我们有了好的架构,那就需要考虑如何将架构落地,而这个时候,代码就显得无比重要了!千万不要让代码成为架构扩展的瓶颈。文中作者提到了代码架构,细细品味吧。...这是一非常重要的前提,直接决定了我们的代码应该分为部分。结合每个部署单元所承担的责任,可以明确的拆分为不同的责任:     1、表达业务逻辑的代码。...计算机的状态保存有一缺陷,本机保留业务运行结果有很大的问题,一般都在外存储设备上保存,也便于扩展。 所以单个部署单元的代码可以分为部分,如下图所示: ?...为了把这三方的变化对 service 的影响降到最低,对于 service 还必须进一步的分为三部分,让每一部分都能够独立的变化,这样这三方的变化就不会产生连锁响应,降低成本。如下图所示: ?...必须把这个 service 分,确保每个 service 只做一件事情。因为如果不这么分的话,一旦这个 service 中的某各部分发生变动,其他的部分的执行必定会受影响。

    53720

    浅谈MVC

    但是对于一后台处理逻辑比较复杂的程序而言,其实以上三部分也只是这个系统中的一部分——前台展示与较浅层次业务逻辑处理部分,但是后台数据处理部分没有涉及到,这也是困惑了我近两年的一疑问,与传统的三层架构设计...在Web开发中,要说到MVC运用事例,表数据的显示与处理最形象、也最好理解:一表格控件若需要显示出一页数据,需要我们绑定一组数据,这组数据通常就是一对象列表,而这些对象实例对应的那个实体类,就是我们的...:有一较复杂界面,需要根据上半部分子视图中日期的变化,动态更新中部表视图数据,界面支持日期一栏左右滑动,切换日期,日期切换后需要同步更新表视图数据;另外界面底部还有命令按钮视图,支持表数据提交操作;...一开始笔者将这个界面进行了分分为View来实现,且每个View对应自己的ViewController:顶部一是导航NavView,一日期切换DateView,一表视图TableView,...在DateView中发起GetDateTime服务请求并获取到数据后,需要将日期数据传递给TableView发起获取表业务数据并加载到页面的操作,但因为这两View是兄弟关系,而非父子关系,所以数据的传递只能采用发通知或者写委托的方式来处理

    94420

    iOS秋招总结 = 面经 + 闲言碎语 (不断更新)

    今日头条 楼主春招的时候采用的是广撒网的战术(因为当时完完全全是菜鸡,iOS大部分都是边春招边学的。。)...请问访问m,n,l 3种类型变量的效率从高到低依次是() A. lnm B. mnl C. mln D. nlm 请写出一单例 请写出程序计算结果 AB两地相距1000米,小明从A地点30米/分钟的速度向...如何将 MVC 改造成 MVVM ?在MVVM中,网络请求、缓存处理的部分应该放在哪个模块? 为什么说Swift是面向协议的语言?...给定排好序的整数数组array[]以及整数n,如何找出和为n的两个数? 如果没排好序呢? 一字符串,如何找出只出现一次并且最先出现的字符?...二面 反转字符串 判断整数是否为$2^n$ 一m*n的棋盘,有些格子不能走,如何找到左上角到右下角的最短路径? iOS 按下 Home 键之后会发生什么? c++中内存分配是怎样的?

    1.6K40

    C++ Qt开发:StandardItemModel数据模型组件

    数据模型组件通常会配合TableView等相关组件一起使用,首先绘制UI界面,界面中包含顶部ToolBar组件,底部是一TableView视图表格,最下方是一PlainTextEdit文本框,如下图所示...首先笔者先来演示一下如何将tableView组件与QStandardItemModel组件进行绑定操作,其实绑定很简单只需要调用ui->tableView->setModel即可将tableView组件与...MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 初始化部分...使用 QFile 打开文件,读写、覆盖原有内容的方式打开文件。 使用 QTextStream 文本流的方式读取文件。 获取表头文字,制表符 \t\t 分隔,写入文件。...制表符隔开 } aStream << str << "\n"; // 文件里需要加入换行符\n ui->plainTextEdit->appendPlainText

    37210

    跟着官方文档学习3D Touch

    苹果的3D Touch分为两类,一类是app外,在主屏幕上按压app的图标,可以在app图标旁边弹出一带有快捷操作项的菜单。...如果我们为一快捷操作项指定了子标题,那么系统就会一行的形式显示子标题(也许仅仅是标题的一部分,后面跟着省略号)无论标题有多长。...peek可用性检测.png 表明peek的可用性 轻按时,周围内容出现模糊效果,告诉用户可以预览额外的内容—也就是peek是可用的。 ---- 阶段二:peek-预览部分内容 ?...pop阶段.png 如果在peek阶段,用户手指没有抬起,而是继续用力按压视图触发导航功能,用系统提供的pop转场到另一视图:这个视图就是peek阶段peekView预览的视图——popView。...2>遵守UIViewControllerPreviewingDelegate协议,实现协议中的以下两代理方法。 此处我按压tableView内的cell为例讲解peek和pop的集成。

    6.4K50

    iOS10中Messages独立应用与扩展插件详析

    无论哪种类型的Messages应用,其都又分为两类,StickerPicks(表情包)与iMessage Apps(Messages应用)。...关于导入的图片,有如下几条规则: 1.图片文件的格式必须是PNG、APNG、GIF或者JPEG。 2.单个文件的大小不能超过500KB。...需要注意,Messages App的视图控制器都分为两种状态,分别为Compact(紧凑的)和Expanded(扩宽的)。...在MessagesViewController类中添加其他视图控件,大部分iOS App开发中可以使用的UI控件这里都可以使用,但是有一点需要注意,对于可以弹出键盘的UI控件,例如UITextView与...nullable) NSString *accessibilityLabel; 6.消息实体布局类MSMessageLayout         前面介绍,MSMessage类中并没有定义UI,UI部分需要配合

    1.1K10

    携程、阿里、京东、腾讯iOS春招面试过程以及面试题总结!

    * * * 今日头条 楼主春招的时候采用的是广撒网的战术(因为当时完完全全是菜鸡,iOS大部分都是边春招边学的。。)...1000米,小明从A地点30米/分钟的速度向B地点走,小白从B地点20米/分钟的速度向A地点走,两人同时出发,用代码写出他们多少分钟后遇到?...如何将 MVC 改造成 MVVM ?在MVVM中,网络请求、缓存处理的部分应该放在哪个模块? 为什么说Swift是面向协议的语言?使用 Protocol 有什么好处?...当点击一View时,发生了什么?如何扩大点击区域? 如何对TableView进行优化? 能讲一讲你对光栅化的理解吗? 三面 对Swift和OC有什么看法?...给定排好序的整数数组array[]以及整数n,如何找出和为n的两个数? 如果没排好序呢? 一字符串,如何找出只出现一次并且最先出现的字符?

    1.5K00

    UITableView性能优化-中级篇

    进阶篇 最近遇到一需求,对tableView有中级优化需求 要求 tableView 滚动的时候,滚动到哪行,哪行的图片才加载并显示,滚动过程中图片不加载显示; 页面跳转的时候,取消当前页面的图片加载请求...; 最常见的cell加载webImage为例: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath...; 而当cell进去界面中的时候,再进行cell渲染(无论是init还是从复用池中取) 解释下YYWebImage机制: 内部的YYCache会对图片进行数据缓存,key:value的形式,这里的...ScrollView流程图.png 当前代码生效的效果如下: ?...答:其实是有的,简单来说YYWebImage 可以拆分成两部分,默认情况下,我们拿到的回调,是走了 download && cache的流程了,这里我们多做一步,取出cache中该url路径对应的图片,

    1.6K20

    短视频APP源码中系统评论功能是如何实现的

    短视频系统中评论功能的分量在短视频功能里可谓是举足轻重,下面简单介绍下,短视频系统中的评论功能的实现方式: 评论分为对视频的评论和对评论的回复两部分: 对于评论列表大家再熟悉不过了,就是一tableview...技术的关键在于对评论的回复,我们使用了tableview的嵌套,即:在评论的cell中创建回复的tablview,使用代理功能来实现对数据和UI界面的精准控制,下面是实现的具体方式: _contentL.attributedText...[[NSTextAttachment alloc] init];                 UIImage *image2 = [UIImage imageNamed:@"relpay_三角上.png...NSTextAttachment *attach = [[NSTextAttachment alloc] init];     UIImage *image = [UIImage imageNamed:@"relpay_三角下.png

    76820

    保姆级教程|如何制作自己的微信红包封面

    后来一想,公众号只是可以送给朋友红包封面,如果没有公众号的朋友想做作一自己独有的红包封面,用在自己发红包的场景,需要满足微信的最低标准,文章第4部分有需要满足的条件。‍‍‍‍‍‍‍‍‍‍‍...03‍、处理图片‍‍ 微信红包平台对图片要求:PNG/JPG/JPEG;尺寸957×1278像素;不超过500KB; ‍‍‍ Mj 生成的图片在尺寸和大小上都不能满足要求,如果自己能将图片处理成上面的格式...这样处理过的图片大小还是2M多,我用的Mac系统,在图片文件上点右键,打开方式选择“色彩同步实用工具”,然后另存为jpeg格式文件,得到一402K大小的图片。...登录成功后,可以看到右边有显眼的红色按钮“定制封面”。‍‍‍‍ 定制封面信息部分,基本信息保持公众号不变就行,否则要上传“证明材料”,影响到审核效率。 封面图就上传刚才我们裁剪好的图片。...如果上传成功,提供5张预览图,类似上面,分别是:原图、红包页、红包气泡、红包详情页和发红包页。如果对效果不满意,可以在相应的页面调整图片位置,以便达到最好的视觉效果。

    13110
    领券