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

JavaFX:如何在TableColumn中显示String[]的内容?

在JavaFX中,要在TableColumn中显示String[]的内容,可以使用自定义的单元格工厂(Cell Factory)来实现。

首先,创建一个TableColumn对象,并设置其CellValueFactory属性为一个回调函数,该函数将返回一个ObservableValue对象,用于绑定到表格中的每一行的数据。

然后,使用setCellFactory方法为TableColumn设置一个自定义的单元格工厂。在单元格工厂中,可以创建一个自定义的TableCell子类,并重写其updateItem方法来自定义单元格的显示方式。

在updateItem方法中,可以根据需要获取String[]的内容,并将其转换为适当的显示形式。例如,可以将String[]转换为逗号分隔的字符串,或者将其显示为一个列表。

以下是一个示例代码,演示如何在TableColumn中显示String[]的内容:

代码语言:java
复制
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.stage.Stage;
import javafx.util.Callback;

public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        TableView<Person> tableView = new TableView<>();
        TableColumn<Person, String[]> column = new TableColumn<>("Skills");

        // 设置CellValueFactory
        column.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Person, String[]>, ObservableValue<String[]>>() {
            @Override
            public ObservableValue<String[]> call(TableColumn.CellDataFeatures<Person, String[]> param) {
                return new SimpleStringProperty(param.getValue().getSkills());
            }
        });

        // 设置CellFactory
        column.setCellFactory(param -> new TableCell<Person, String[]>() {
            @Override
            protected void updateItem(String[] item, boolean empty) {
                super.updateItem(item, empty);
                if (empty || item == null) {
                    setText(null);
                } else {
                    // 将String[]转换为逗号分隔的字符串
                    setText(String.join(", ", item));
                }
            }
        });

        tableView.getColumns().add(column);

        ObservableList<Person> data = FXCollections.observableArrayList(
                new Person("John", new String[]{"Java", "C++", "Python"}),
                new Person("Jane", new String[]{"HTML", "CSS", "JavaScript"})
        );

        tableView.setItems(data);

        primaryStage.setScene(new Scene(tableView, 300, 200));
        primaryStage.show();
    }

    public static class Person {
        private String name;
        private String[] skills;

        public Person(String name, String[] skills) {
            this.name = name;
            this.skills = skills;
        }

        public String getName() {
            return name;
        }

        public String[] getSkills() {
            return skills;
        }
    }
}

在这个示例中,我们创建了一个名为Person的简单数据模型类,其中包含一个名为skills的String[]属性。我们将这个属性与TableColumn的CellValueFactory绑定,以便在表格中显示每个人的技能。

然后,我们使用setCellFactory方法为TableColumn设置一个自定义的单元格工厂。在这个示例中,我们创建了一个继承自TableCell的匿名内部类,并重写了其updateItem方法。在updateItem方法中,我们将String[]转换为逗号分隔的字符串,并将其设置为单元格的文本。

最后,我们创建了一个TableView,并将数据集合设置为表格的数据源。然后,将TableColumn添加到TableView中,并将TableView显示在舞台上。

这是一个简单的示例,演示了如何在JavaFX的TableColumn中显示String[]的内容。根据实际需求,您可以根据自己的需要进行更多的定制和扩展。

腾讯云相关产品和产品介绍链接地址:

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

相关·内容

JavaFX-TableView详解

两种数据形式: 一种是维护类TableColumn类型,列每一个数据都是一个类(这里是一个Person类),而String类型对应列名。...对应列名 另一种是维护MapTableColumn类型,列每一个数据都是Map。..., String>>() { @Override public void handle(TableColumn.CellEditEvent t) { System.out.println...增加列,删除列 这就不仅仅要删除集合数据,还要从表格里面的Columns集合删除相应数据才可以,或许你还会在删除和增加中加入一定判断来保证操作正确性: table.getColumns()....add(tempCol); // 列表显示新增列 table.getColumns().remove(index); // 删除index位置列 监听列变化 你大可以选择向源文件那样

3.4K60
  • 使用Javafx生成虚假手机号身份证号小工具

    使用Javafx生成虚假手机号身份证号小工具一、介绍在日常编码,我们需要生成一些虚假信息进行测试,其中就包括了手机号,身份证号那么如何生成这些虚假手机号,和身份证号码呢我打算用javafx来编写一个生成虚假手机号...,javafx足够了二、编码1)整体思路及页面布局我打算使用两个Tab,一个手机号、一个身份证号,来回切换在Tab内容,放入一个按钮,一个表格当我点击按钮时候,就会在表格刷新虚假数据,来进行展示表格有两列...,分别为【手机号、操作】在操作这一列里面放置一个行内按钮,点击这个按钮,即可复制当前行虚假内容至剪切板整体思路不错,立刻开工2)整合SpringBoot还得是SpringBoot,我们先看看需要引入哪些依赖...,设置了行内按钮,以及对表格内容进行了居中处理按钮点击,在fxml文件,设置了两个按钮。...(checkChar[result % 11]); } }4)添加样式我以前一直以为javafx添加样式,一定得要java代码进行添加但实际上还能支持一定css,只需要在文件引入css文件,

    20250

    何在keras添加自己优化器(adam等)

    2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...一般来说,完成tensorflow以及keras配置后即可在tensorflow目录下python目录中找到keras目录,以GPU为例keras在tensorflow下根目录为C:\ProgramData...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

    45K30

    用 Table 在 SwiftUI 下创建表格

    在 WWDC 2022 ,Table 被拓展到 iPadOS 平台,让其拥有了更大施展空间。本文将介绍 Table 用法、分析 Table 特点以及如何在其他平台上实现类似的功能。...,更习惯于将数据元素以行( Row )形式进行展示( 在一行显示数据不同属性内容 ) 在 Table 数据是懒加载,行视图( TableColumn onAppear 和 onDisappear...无论单元格内容实际高度需求有多大,Table 始终将保持系统给定默认行高。...开发者可以通过 frame 修饰符来更改单元格内容对齐方式( 暂时无法更改标题对齐方式 ): TableColumn("货币代码") { Text($0.currencyCode)...如果该列显示属性类型为 String,且无须添加其他设定,可以使用基于 KeyPath 精简写法: TableColumn("货币代码", value:\.currencyCode) 但是,如果属性类型不为

    4.1K30

    为什么Power Query筛选内容显示不全?

    小勤:为什么在PQ里筛选显示这个? 大海:当数据比较多时候,就经常会这样显示。 小勤:有什么规律吗?...大海:据了解,PQ首先是检测表前1000行数据不重复值来提供筛选选项,当数据超过1000行时,就可能会显示“列表可能不完整”提示。...大海:PQ筛选器只能容纳1000个供筛选选项,当PQ检测数据前1000行,发现全部都是不同值时,就直接显示1000行,然后告诉你达到了上限。 小勤:那这种情况下怎么筛选啊?...这是PQ限制,在微软官方网站上有明确说明(更多内容可参考以下链接:https://support.office.com/en-us/article/Power-Query-specifications-and-limits...-5FB2807C-1B16-4257-AA5B-6793F051A9F4) 小勤:也就是说如果要筛选没有显示出来内容,必须通过改代码?

    4.2K20

    Excel何在大于零数字旁边显示为“正常”?

    Excel技巧:Excel何在大于零数字旁边显示为“正常”? 问题:如何在大于零数字旁边显示为“正常”? 解答:利用If函数轻松搞定。...具体操作如下:新建一个Excel工作簿,您可以自己输入一些大于0或小于0数字。等下我们要在旁边显示,凡是大于0数字,显示为“正常”二字。 ?...在上图单元格处,输入If函数内容如下:=if(C4 0,“正常”,“ ”)意思是如果C4 0,这显示为正常,否者显示为空格。...输入函数完毕后,单击回车键,然后双击D4单元格数据柄(下图1处),自动向下填充函数公式即可。 ? 双击完毕后,效果如下: ? 大于零数值显示为正常,小于零数值显示为空格。...总结:注意函数参数,只要超过两个字符,就需要用半角输入法引号引用起来,否者函数公式会报错。本例中小于零数值显示为空格,是一种让单元格不显示内容一种常规方法(其实单元格有内容是空格)。

    3.5K10

    Bootstrap Blazor 组件介绍 Table (一)自动生成列功能介绍

    那么从今天开始正式介绍一下性能爆炸,操作简单 BootstrapBlazor 组件库最强王者组件 Table,由于功能实在是太多,仅示例目前网站中就有近 60 个各种实战需要功能,再接下来时间里我们一一介绍...自动生成列功能 使用 Table 组件时大多数组件都是要求用户输入显示那些列,这样会在 razor 文件增加大量列相关信息,如下所示 <TableColumn @bind-Field="@context.DateTime...划重点 使用 Table 组件 UI 层面的基本操作均已经封装到组件功能,开发人员只需要将精力转移到数据库操作上去,例子 OnQueryAsync 数据查询方法 OnSaveAsync 数据保存方法..., Task>?...public string?

    1.8K30

    何在Integer类型ArrayList同时添加String、Character、Boolean等类型数据?

    先来看看面试官描述: “如何在Integer类型ArrayList同时添加String、Character、Boolean等类型数据呢?” 看到这里,你是不是想到下面的代码?...这种方式是最常用,在各类框架配置文件可以看到,:Spring、SpringMVC、Mybatis等等。...>... parameterTypes) Method methodName:表示被获取方法名字parameterTypes:表示被获取方法参数Class类型, String.class 表示获取指定一个本类方法...null,表示同类公用方法 args参数可以为空,就是对应方法没有参数 有关Java反射详细内容我将会专门出一期来讲解,这里只对本期用到几个重要知识点做概述。...//向list添加String类型数据 String string="Hello World"; o=string; Test.addObjectToList

    2.1K20

    教你两招如何在notebook同时展示你Python内容

    前言 jupyter notebook 我们无须写 print 即可把最后表达式内容自动显示: 不过,每个执行单元格只能输出最后内容: 你知道怎么在 jupyter notebook 中一次输出...今天就来教你怎么做到 ---- 同时输出多个内容 这个技巧网络上到处可见: 设置 InteractiveShell.ast_node_interactivity = "all" 即可 没啥好说,记住就行...按 F12 ,通过浏览器开发者工具,可以查看输出内容结构: 一个单元格容器 div class 名字叫 "output",里面的每组输出容器 class 名叫 "output_area" 查看表格...,你会发现 pandas dataframe 输出 class 名叫 "dataframe" 因此我们可以用一些方法使用 css 轻易改变样式: 我们需要使用 IPython.display ...在 JupyterNotebook这几招很有用 入门Python,这些JupyterNotebook技巧就是你必须学

    1.7K20

    Android解决ScrollView下嵌套ListView和GridView内容显示不全问题

    最近为公司做一个Demo里面用到了ScrollView嵌套了GridView和ListView,然而在嵌套时候我发现GridView和ListView都是不能完全显示显示基本上都是单行数据,最后查找资料和翻阅文档看到原因是...ListView和GridView绘制过程在ScrollView无法准确测量自身高度,而且listVIew和GridView抢占了焦点,使得ListView和GrideView具有自身显示效果...,这样就测量出显示一行条目即可距离,其他条目根据自身滑动显示。...用自己写方法之后才显示出来了所有的条目 ?...,希望本文内容对大家学习或者工作具有一定参考学习价值,谢谢大家对ZaLou.Cn支持。

    2.4K20
    领券