实现 ObservableValue

2024-01-09

我有这个对象:

public class Oggetto{
    private int value;
    private boolean valid;

    public Oggetto(int value, boolean valid) {
        this.value = value;
        this.valid = valid;
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public boolean isValid() {
        return valid;
    }

    public void setValid(boolean valid) {
        this.valid = valid;
    }    
}

我想实现一个 Observable 对象,当内部发生变化时触发事件 这是可观察的对象:

public class OggettoOsservabile implements ObservableValue<Oggetto>{

    private Oggetto value;

    OggettoOsservabile(int i, boolean b) {
        this.value=new Oggetto(i, b);
    }
    @Override
    public void addListener(ChangeListener<? super Oggetto> listener) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    @Override
    public void removeListener(ChangeListener<? super Oggetto> listener) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    @Override
    public Oggetto getValue() {
        return value;
    }
    @Override
    public void addListener(InvalidationListener listener) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    @Override
    public void removeListener(InvalidationListener listener) {
        throw new UnsupportedOperationException("Not supported yet."); 
    }  
}

我不知道如何继续检测“Oggetto”类中的更改并向寄存器侦听器发送通知。

OggettoOsservabile oggetto = new OggettoOsservabile(1, false);              
oggetto.addListener(new ChangeListener<Oggetto>() {
     public void changed(ObservableValue<? extends Oggetto> observable, Oggetto oldValue, Oggetto newValue) {
           System.out.println("changed " + oldValue + "->" + newValue);   
     }
});

实施您的Oggetto使用标准 JavaFX 属性的类:

import javafx.beans.property.BooleanProperty ;
import javafx.beans.property.IntegerProperty ;
import javafx.beans.property.SimpleBooleanProperty ;
import javafx.beans.property.SimpleIntegerProperty ;

public class Oggetto {

    private final IntegerProperty value = new SimpleIntegerProperty() ;

    public final IntegerProperty valueProperty() {
        return value ;
    }

    public final int getValue() {
        return value.get();
    }

    public final void setValue(int value) {
        this.value.set(value);
    }

    private final BooleanProperty valid = new SimpleBooleanProperty();

    public final BooleanProperty validProperty() {
        return valid ;
    }

    public final boolean isValid() {
        return valid.get();
    }

    public final void setValid(boolean valid) {
        this.valid.set(valid);
    }

    public Oggetto(int value, boolean valid) {
        setValue(value);
        setValid(valid);
    }
}

这可能就是您所需要的,因为您只需观察各个属性即可。但是,如果您想要一个在任一属性发生更改时通知失效侦听器的类,您可以扩展ObjectBinding:

import javafx.beans.binding.ObjectBinding ;

public class OggettoObservable extends ObjectBinding {

    private final Oggetto value ;

    public OggettoObservable(int value, boolean valid) {
        this.value = new Oggetto(value, valid);
        bind(this.value.valueProperty(), this.value.validProperty());
    }

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

实现 ObservableValue 的相关文章

  • JavaFX ProgressBar:如何添加动画?

    我创建了一个进度条并更改了进度条颜色 是否可以像 bootstrap 动画进度条一样向进度条添加动画 这是示例 链接在这里 http getbootstrap com components progress animated 实际上 我找到
  • 使用 PixelWriter 在 JavaFX Canvas 上进行透明绘图

    有谁知道为什么使用drawImage 在Canvas上进行透明度绘制工作得很好 但在PixelWriter上却根本不起作用 我最初认为这可能与画布 上下文上的混合或其他模式 设置有关 但还没有任何运气 我需要每个像素的可变透明度 而不是整个
  • RxJS Angular2 在 Observable.forkjoin 中处理 404

    我目前正在链接一堆 http 请求 但是在订阅之前我无法处理 404 错误 My code 在模板中 service getData subscribe data gt this items data err gt console log
  • 有没有办法设置独立 TableView 列的样式?

    我可以使用 CSS 来设置单元格样式 但如果我只想为一列使用不同的样式 例如使用不同的文本颜色 怎么办 也许我错过了一些东西 你应该使用TableColumn setCellFactory http docs oracle com java
  • JavaFX 中 ImageView 的顺序转换

    我已经看过了如何在 javafx 2 1 中等待转换结束 https stackoverflow com questions 11188018 how to wait for a transition to end in javafx 2
  • 如何从我自己的线程安全地修改 JavaFX GUI 节点?

    我尝试更改线程中的 JavaFX GUI 节点 但看到以下错误 线程 Thread 8 中的异常 java lang IllegalStateException 不存在 FX应用线程 当前线程 线程 8 生成错误的示例代码 public c
  • JavaFX TabPane - 每个选项卡一个控制器

    我是 Fx 新手 我有一个带有 10 个选项卡的 TabPanel 每个选项卡都有很多控件 图表 按钮等 我想要的是为每个选项卡分配一个控制器 SceneBuilder 只让我为整个视图分配一个控制器 我的意思是 只有顶部面板 根 具有 控
  • Angular Template:如何绑定 RXJS Observable 并读取其属性?

    我创建了这个界面 interface IGame name string description string 我将它用作 Observable 并将其传递为Input to the Component Input public game
  • 如何使用 JavaFX 中的 JCSG 库将 MeshView 转换为 CSG 对象

    我正在使用 JavaFX 的 JCSG 库 我有一些MeshView我想将它们转换成的对象CSG对象 有办法实现吗 最简单的方法是组合javafx scene shape Mesh对象与 CSG 对象 前提是您有TriangleMesh正在
  • FXML 文档拒绝导入其他 fxml 文件

    我的程序有一个主要的 FXML 文档 其中包含TabPane 对于每个选项卡 我希望它有自己的控制器和 fxml 文件 当我尝试将外部 fmxl 文件包含到主 fxml 文档中时 我的程序拒绝运行 这是我的主要 FXML 文档 这是我的 j
  • 在 CSS 中设置 TableView 样式 (JavaFX)

    如何在 TableView 中设置 THIS 点的样式 我的 CSS 代码如下所示 Empty Stylesheet file root fx background color 262626 table view fx background
  • 如何在JavaFX中获得一个小的ProgressBar

    我正在尝试获得一个类似 iTunes 的进度条 该进度条非常小 高度约为 5 像素 但我似乎无法低于 19 或 20 像素 我尝试在周围的窗格上设置 fx max height 但没有效果 请注意 这个值确实会改变高度 我只是不能让它小于大
  • Android 回调监听器 - 将 SDK 中的 pojo 的值发送到应用程序的 Activity

    我有一个深埋在 SDK 中的 java 类 它执行一个操作并返回一个布尔值 它不知道应用程序的主要活动 但我需要主要活动来接收该布尔值 我见过很多关于回调 广播和监听器的问题 但他们似乎都了解该活动 我的 pojo 确实有一个 Activi
  • 如何使 AnchorPane 大小响应最大化的屏幕视图

    我不知道什么是灰色地带以及如何扩展我的Anchorpane到整个屏幕Image https i stack imgur com m5HqA png 不是未最大化的视图是这样的image2 https i stack imgur com 14
  • Angular 2 EventEmitter - 从服务函数广播 next( ... )

    据我了解 toRx subscribe 函数用于接收消息 next 函数用于广播消息 在这个 plnkr http plnkr co edit MT3xOB p info http plnkr co edit MT3xOB p info 您
  • javafx中的stackpane和root有什么区别?

    我正在练习javafx做饼图 以下是开发饼图的代码 如果我这样做Group并与StackPane 我发现输出没有区别 我已经评论了组部分 只是徘徊两者之间的区别 import javafx application Application i
  • 将侦听器添加到各个 ListPreference 项

    我正在尝试将单个侦听器添加到ListPreference但我只是找不到正确的代码来做到这一点 例如 假设我有一个应用程序需要region要设置 所以我有一个ListPreference有三个选项 美洲 亚洲 欧洲 当我使用触控板滚动浏览项目
  • JavaFX 如何在不改变线宽的情况下缩放路径的坐标?

    我目前正在制作具有缩放和平移功能的阶梯折线图 由于我需要处理的数据量非常大 因此每次调用layoutPlotChildren 时 我无法重新创建步骤线的整个路径 所以我的想法是创建一次路径元素 然后在缩放和平移事件时对其进行转换 到目前为止
  • 如何加载图像文件到ImageView?

    我试图在从文件选择器中选择图像文件后立即显示该图像文件 文件选择器仅限于 png 和 jpg 文件 所选文件存储在文件类型的变量中 为此 我设置了一个 ImageView 我希望用这个新文件设置图像 唯一的问题是它的类型是文件而不是图像 如
  • JavaFX ScrollPane 样式

    我正在尝试在 JavaFX 中创建一个黑白 ScrollPane 我已经创建了一个 CSS 文件 它工作得很好 除了这个小方块 无论我尝试什么 我都无法将其变黑 这是我的 CSS 文件 scroll pane fx background c

随机推荐

  • 如果值为空则更改绑定

    如果值为 null 或空 我想更改绑定 我举这个例子来解释 List
  • 删除SAS中所有观测值都不包含特定值的组

    我想删除其观察值中没有 NUM 14 的整个组 所以就像这样 原始数据 ID NUM 1 14 1 12 1 10 2 13 2 11 2 10 3 14 3 10 由于 ID 2 中都不包含 NUM 14 因此我删除了组 2 它应该看起来
  • 使用“/”和 Slugs 的 Rails RESTful 路由

    我希望做一些类似 wordpress slug 的事情 其中 我有一个像这样的 URL 同时维护 RESTful 路由 http foo com blog 2009 12 04 article title 我对保持 RESTFUL 路由感兴
  • 如何测试基于 Stripe 的 Apple Pay? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 目前我正在尝试开发一个本机iOS应用程序 我必须集成基于Stripe的Apple Pay 为此我已在我的项目中添加了他们提供的SDK 在最
  • 在Android上,正在运行的进程和缓存的后台进程有什么区别?

    在Android上 当我查看 设置 gt 应用程序 时 在 运行 选项卡下 我可以看到内存被分成几部分 已用内存 和 空闲内存 应用程序也被放置进入 已用内存 或 空闲内存 无内存 部分中的应用程序被标记为 缓存后台进程 那么 什么是 缓存
  • ReentrantLock.Sync 中当前线程变量的搭载如何工作?

    我在 Java并发实践 第14 6 1节中读到了ReentrantLock的一些实现细节 注释中的一些内容让我感到困惑 因为受保护的状态操作方法具有易失性读取或写入的内存语义 并且 ReentrantLock 非常小心仅在调用 getSta
  • 谷歌表格=间接()在单元格范围上

    我想知道是否有一个标准函数可以循环一系列单元格并对其应用间接函数 我正在尝试构建一个表格来按商店 月份和类别来支付我的费用 但到目前为止它还很难扩展 因为我有一个看起来像的函数 INDIRECT B 3 concat A12 C 1 IND
  • 什么可能导致 PHP 序列化函数失败?

    我有一些服务器端 PHP 代码 尝试将数据对象 本质上是多维数组 保存到后端数据库 该数据对象最初作为从 Flex 应用程序发送的 AMF 动作脚本对象出现 我想保留整个对象以供以后使用 因此我使用了 php 序列化函数并将对象编码为一个可
  • 如何使该 Youtube 视频可点击(css + z-index)?

    我希望 Youtube 视频成为背景壁纸 但我仍然希望它具有交互性 即用户可以通过单击来暂停视频 现在 我已将 iframe 设置为 z index 为 99 由于某种原因 我无法点击它 用Firebug检查后 似乎是这样body覆盖 if
  • 对于内置类型可以使用 C 风格的强制转换吗?

    在这里阅读了很多关于 C 中 C 风格转换的答案后 我仍然有一个小问题 我可以对内置类型使用 C 风格的转换吗 long x long y 或者它仍然被认为是不好和危险的 我可以对 long x long y 等内置类型使用 C 风格转换吗
  • 如何使用带有校验位的 ZPL 创建 GS1-128 条形码

    我需要使用 ZPL 生成 GS1 128 条形码 它需要包含一个校验位 我似乎没有得到校验位 Here is my code BCN 088 Y Y Y D FD 00 00123456000057763 FS The first Y is
  • 在android中的edittext中插入textview?

    我正在尝试在 Edittext 中插入文本视图 如下所示 任何人都可以给我关于如何实现它或其他东西的想法 谢谢 update 编辑文本中的文本视图会动态变化 尝试这个示例代码 它符合你的要求 PopupWindow pw new Popup
  • 从 testNG.xml 文件中检索参数值

    我想打印该值 iphone 5 从钥匙参数名称 webdriver deviceName iPhone 基本上有两种方法可以在测试类中执行此操作 测试类本质上是包含一个或多个 Test 配置方法 Via the ITestContext目的
  • HTTP 基本:访问被拒绝致命:身份验证失败

    我在 Windows 10 Pro x64 上使用 GitLab 社区版 9 1 3 2e4e522 带有 Git 客户端 Error Cloning into project name remote HTTP Basic Access d
  • Firebase 存储允许删除文件

    我对用户发布图像上传有以下规则 但是当前规则不允许删除文件 如何修改规则以允许用户删除他的图片 什么属性request变量表示请求是DELETE match uid posts pid imageName allow read allow
  • Windows/WPF/Silverlight 应用程序中的实体框架 ObjectContext

    我们正在使用实体框架 准确地说是带有 RIA 服务的 Silverlight 编写一个 WPF 应用程序 我们通过应用程序使用共享的 ObjectContext 以便我们可以从跨模块共享数据中受益 问题是 如果用户在工作期间打开历史销售 它
  • 如何使用 C# 将 Html 的图像转换为数据 URI?

    我需要在 HTML 的 Win 应用程序中将图像转换为数据 URL 嵌入图像 并且我需要 图像的数据 URL 嵌入图像 public static string GetDataURL string imgFile return img sr
  • 教义。为什么我在 ManyToMany 上得到 persistCollection 和一个空数组?

    这是我的实体 Productgeneral ORM Table name ProductGeneral indexes ORM Index name category id columns category id ORM Entity cl
  • XCode 工作区完整性 - 无法加载项目 (pods.xcodepoj)

    我从 git 中拉取 一切正常 除了我收到此错误 即使我仍然可以运行该项目 有没有办法来解决这个问题 这通常意味着存在提交到实际的 project pbxproj 文件的合并冲突 由于这是一个 Pods 项目 它是短暂的并且可以随意重新创建
  • 实现 ObservableValue

    我有这个对象 public class Oggetto private int value private boolean valid public Oggetto int value boolean valid this value va