Javafx tableview 反射不起作用

2023-12-14

我试图用模拟数据填充 JavaFx TableView 列,但我不断收到反射错误,即使我认为我正确遵循了 Bean 约定:

// Data model

class SensorTableEntry {
    SensorTableEntry(Integer id, String man, String type, String addr) {
        this.id = new SimpleIntegerProperty(id);
        this.manufacturer = new SimpleStringProperty(man);
        this.type = new SimpleStringProperty(type);
        this.btAddress = new SimpleStringProperty(addr);
    }

    private IntegerProperty id;
    public Integer getId() { return idProperty().get(); }
    public void setId(Integer value) { idProperty().set(value); }
    public IntegerProperty idProperty() { return id; } 

    private StringProperty manufacturer;
    public void setManufacturer(String value) { manufacturerProperty().set(value); }
    public String getManufacturer() { return manufacturerProperty().get(); }
    public StringProperty manufacturerProperty() { return manufacturer; }

    private StringProperty type;
    public void setType(String value) { typeProperty().set(value); }
    public String getType() { return typeProperty().get(); }
    public StringProperty typeProperty() { return type; } 

    private StringProperty btAddress;
    public void setBtAddress(String value) { btAddressProperty().set(value); }
    public String getBtAddress() { return btAddressProperty().get(); }
    public StringProperty btAddressProperty() { return btAddress; } 
}

// More code before this...


// Actual table inside the controller

ObservableList<SensorTableEntry> sensorEntries = FXCollections.observableArrayList(
    new SensorTableEntry(1, "manufacturer", "type", "00:00:00:00:00:00")
);   

TableView<SensorTableEntry> table = new TableView<SensorTableEntry>();

TableColumn<SensorTableEntry,Integer> idCol = new TableColumn<SensorTableEntry,Integer>("ID");
idCol.setCellValueFactory(new PropertyValueFactory<SensorTableEntry,Integer>("id"));

TableColumn<SensorTableEntry,String> manufacturerCol = new TableColumn<SensorTableEntry,String>("Manufacturer");
manufacturerCol.setCellValueFactory(new PropertyValueFactory<SensorTableEntry,String>("manufacturer"));

TableColumn<SensorTableEntry,String> typeCol = new TableColumn<SensorTableEntry,String>("Type");
typeCol.setCellValueFactory(new PropertyValueFactory<SensorTableEntry,String>("type"));

TableColumn<SensorTableEntry,String> btAddressCol = new TableColumn<SensorTableEntry,String>("Bluetooth Address");
btAddressCol.setCellValueFactory(new PropertyValueFactory<SensorTableEntry,String>("btAddress"));

table.setItems(sensorEntries);
table.getColumns().addAll(
    idCol,
    manufacturerCol,
    typeCol,
    btAddressCol
);

pane.getChildren().add(table); 

我检查了类似问题的其他答案,例如:

Javafx PropertyValueFactory 未填充 Tableview

JavaFx TableView 未填充所有必需的列

Javafx 表视图未显示所有列中的数据

但无论我怎么检查,我似乎都没有发现我的命名出了问题。我错过了什么吗?

我得到的例外是:

线程“JavaFX应用程序线程”中的异常java.lang.RuntimeException:java.lang.IllegalAccessException:类sun.reflect.misc.Trampoline无法使用修饰符“public”访问类SensorTableEntry的成员 在 com.sun.javafx.property.PropertyReference.getProperty(PropertyReference.java:200)


你的属性必须是完全可访问的,以便它们的 getter 和它们的所有者类两者都必须是公开的.

所以只需替换它:

class SensorTableEntry {

有了这个:

public class SensorTableEntry {
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javafx tableview 反射不起作用 的相关文章

随机推荐

  • Linux内核中使用的三个优先级有什么区别?

    我是 Linux 内核的新手 现在我正在研究 Linux 内核中的进程调度 Linux 中存在三种类型的优先级 静态优先级 动态优先级 实时优先级 现在我明白的是 静态优先级和动态优先级仅针对传统进程定义它们只能取 100 到 139 之间
  • 使用令牌保护 REST Web 服务 (Java)

    这个问题在某种程度上与下面链接的问题相关 但是 我需要更清楚地了解某些方面和一些附加信息 参考 REST Web 服务身份验证令牌实施 背景 我需要使用令牌实现 REST Web 服务的安全性 Web 服务旨在与 Java 客户端一起使用
  • 是否有 JavaFX 方法来测试坐标是否在闭合路径内?

    我试图找到一种 JavaFX 方法来检测坐标是否位于闭合路径内 我创建了以下示例 并研究了各种方法 但是没有任何效果如我所愿 只有在非矩形形状内时才返回 true Node contains 仅适用于形状的边缘 不适用于内部 Node in
  • 如果仅知道密钥和明文,则恢复 AES IV

    如果我以 AES CBC 模式解密密文 并且第一个块的解密明文与原始已知明文不匹配 则很明显用于解密的 IV 与加密期间使用的 IV 不匹配 用于加密或解密的 IV 均未知 如果我知道密文 我可以执行以下操作来查找加密期间使用的 IV 尝试
  • Python 中限制函数执行

    类似的问题和答案还有很多 但我仍然找不到可靠的答案 所以 我有一个函数 可能运行时间太长 函数是私有的 从某种意义上说我无法更改它的代码 我想将其执行时间限制为 60 秒 我尝试了以下方法 Python 信号 不适用于 Windows 和多
  • 在 Eclipse 中获取类中所有方法的概览

    我已经完成了相当多的 xCode 编程 发现类中方法的概述视角非常有用 它看起来像这样 MY GROUP 1 lt defined with pragma mark MY GROUP 1 M method11 M method12 M MY
  • 如何在按键时更改 pygame 中文本的颜色?

    当谈到 pygame 时 我是一个完全的业余爱好者 我需要制作一个程序 当文本沿不同方向传播时 该程序会改变文本的颜色 这意味着每次按键 上 下 左 右 颜色都会不同 到目前为止 我已经能够让文本向各个方向移动 但是我不明白如何改变颜色 任
  • 堆分配一个二维数组(不是指针数组)

    我正在编写 C 代码 我想堆分配 512 256 字节 为了我自己的方便 我希望能够使用语法 array a b 访问元素 没有算术来找到正确的索引 我在网上看到的每个教程都告诉我创建一个指针数组 该数组指向我想要在数组中包含的行的数组 这
  • 两个文本字段的总和 - javascript

    我在网上找到了 this 1 相当困难的 javascript 示例 并且我已经在我的网站上成功实现了它 但是 在本例中 我希望在一个新文本字段中获得两个小计的结果 传统的getElementbyId and total value tot
  • Mongoose:定义未找到文档的 404 状态不起作用

    我正在学习 MongoDB 和 mongoose 现在我在为我的路由处理程序定义 404 状态时遇到问题 这是代码 app get users id async req res gt const id req params id try c
  • Sql 层次结构 ID 按级别排序

    是否可以按层次结构 id 对层次结构中的 sql 数据进行排序 然后对每个级别按字母顺序排序 假设我们有一个员工表 其中根据员工 ID 列出了组织层次结构 鲍勃 5 有菲尔 17 和查理 28 向他汇报 乔西 6 有泰勒 15 和迈克 56
  • VBA 运行时错误中没有调试选项

    我使用的是 excel 2013 当出现运行时错误时 我没有得到任何调试选项 如何在运行时错误期间获得调试选项 编辑 我意识到我只在以下情况下遇到这个问题 通常我会得到调试选项 除了这种情况 特别痛苦的是它甚至不告诉我错误在哪一行 错误的屏
  • Promise : then 与 then + catch [重复]

    这个问题在这里已经有答案了 以下2个代码有什么区别吗 myPromise then function console log success catch function console log error myPromise then f
  • 按返回键“不”关闭软件键盘 - SwiftUI

    我想创建一个 TextField 可以在其中快速输入多个字符串项same字段 输入项目 然后点击return添加它 我已经有了添加功能 但是我不想在每次按回车键将项目添加到列表时关闭键盘 因为这对于用户每次点击文本字段以返回该项目来说很麻烦
  • Pandas - 将前导“0”添加到字符串值中,以便所有值都相等 len

    我有一个专栏 code x 我把它转换为 astype str 一些示例值是45362 0 75345 0 346157 0 572575 0 我希望它们都是 6 位数字 又名 045362 075345 346157 572575 我正在
  • 单击按钮时的 JavaFX 新场景

    标题可能有点模糊 所以请允许我更好地定义它 我有一段工作代码 如下 我正在开发的游戏的简单主菜单 除了 开始 按钮之外 一切都运行良好 我想要做的是单击 开始 按钮 然后在同一舞台 窗口 上出现一个新场景 我不想看到新窗口打开 我与 Jav
  • c 中的 fflush(stdout)

    当我在 fflush stdout 处并且在 GDB 中中断时 我可以在实际打印之前知道 stdout 中有什么吗 我如何才能知道任意时间点标准输出中有什么内容 如果您自己分配一个缓冲区并将其传递给setvbuf 我想你可以在刷新之前访问它
  • Three.js:从平面正交向量到平面旋转矩阵

    我想设置平面的旋转 这需要三个数字来表示 x y 和 z 轴上以弧度为单位的旋转 我没有这些数字 但是 我有一个向量 myVec 一旦旋转 该向量将与平面正交 这个向量让我更近了一步 但还没有完全实现 THREE Vector3 提供了一个
  • R:将宽格式转换为具有多个3个时间段变量的长格式[重复]

    这个问题在这里已经有答案了 抱歉 如果这是一个简单的问题 但我在搜索后找不到简单的解决方案 我对 R 相当陌生 并且在使用 Melt reshape2 或 Gather tidyr 函数将宽格式转换为长格式时遇到问题 我正在使用的数据集包含
  • Javafx tableview 反射不起作用

    我试图用模拟数据填充 JavaFx TableView 列 但我不断收到反射错误 即使我认为我正确遵循了 Bean 约定 Data model class SensorTableEntry SensorTableEntry Integer