java属性改变监听器

2024-01-19

我需要处理两个类之间的更改交互。

public class HeadClass {

private Subclass sub;

public void refresh() {...}

}


public class Subclass{

ArrayList store;

public void add(T data)
store.add(data);
firePropertyChange(...);
}

每当调用子类中的“add”方法时,都应该调用 HeadClass 中的“refresh”方法! 但是我应该在哪个类中实现这一行:

private PropertyChangeSupport changes = new PropertyChangeSupport(/*WHAT SHOULD BE HERE?*/);

如果我在 HeadClass 中实现它,我可以这样反应:

changes.addPropertyChangeListener(new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent event) {
                refresh();
            }
        });

但是,如果我无法访问 propertyChangeSupport“更改”,我应该如何从子类触发 propertyChangeEvents?


子类获取 PropertyChangeSupport,以及添加和删除 PropertyChangeListener 的方法。你会通过this进入子类的 PropertyChangeSupport 构造函数。

public class Subclass{
  private PropertyChangeSupport propChangeSupport = 
       new PropertyChangeSupport(this);
  private ArrayList store;

  public void addPropertyChangeListener(PropertyChangeListener listener) {
    propChangeSupport.addPropertyChangeListener(listener);
  }

  public void removePropertyChangeListener(PropertyChangeListener listener) {
    propChangeSupport.removePropertyChangeListener(listener);
  }


  public void add(T data)
    store.add(data);
    propChangeSupport.firePropertyChange(...);
  }


}

关键始终是哪个类需要监听其状态?既然那是子类,那么它需要持有属性更改支持。执行监听的类是将监听器添加到支持中的类。

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

java属性改变监听器 的相关文章

  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 使用泛型类型的运算符时出错[重复]

    这个问题在这里已经有答案了 我正在学习 Rust 我不明白为什么下面的代码会出错 use std ops Mul use std ops Add struct Vec2
  • Vue js将多个样式属性绑定到一个元素

    这会将背景颜色属性绑定到 td 元素 td Some text td 但是 如果我不仅想绑定背景颜色 同时还想绑定前景色 正常颜色属性 该怎么办 如何将多个样式属性绑定到一个元素 首先 css中没有前景色 您可以使用多种样式 并以逗号分隔k
  • 如何在react中解析xml文件?

    我尝试过使用一些库 但似乎找不到任何答案 我有一个 React 网站 我正在使用表单上传文件 我正在寻找一种方法来解析XML文件 并到达它的孩子 但我似乎找不到方法来做到这一点 My form
  • HikariCP多线程每个线程单独连接

    致 stackoverflow 社区的人们 我正在寻求一些帮助来解决我在 HikariCP 连接池方面遇到的问题 高水平 我正在尝试使用线程池创建多个线程 我的计划是为每个工作线程提供与 HikariCP 各自独立的连接 但 HikariC
  • 将 Xcode 8 与 iOS 11 结合使用

    我想在 iOS 11 中使用 Xcode 8 我应该升级我的 Xcode 吗 但是 我的代码无法由新编译器构建 因此我想继续使用 Xcode 8 我怎样才能做到这一点 苹果在 WWDC 2017 上公布了 iOS 11 的多项新功能 截至目
  • 新版 Google Play 服务中的“Listener”发生了什么变化

    在 Android Studio 中 我已更新 Google Play 服务 com google android gms play services 6 1 11 to com google android gms play servic
  • 我的代码发出错误“应用程序:不是过程”或“调用非过程”

    在执行我的代码期间 我在不同的方案实现中遇到以下错误 Racket application not a procedure expected a procedure that can be applied to arguments give
  • Bootstrap:如何识别Bootstrap版本?

    我想更新网站上的 Bootstrap 但我不知道安装的版本 如何仅使用 bootstrap css 和 bootstrap min js 文件来识别 bootstrap 版本 CSS 文件中没有版本 min js 文件包含以下注释 Boot
  • 错误:postgresql 中不存在用于更新的列[重复]

    这个问题在这里已经有答案了 我正在尝试将一行文本插入到该列为空的列中 下面列出了错误 任何帮助是极大的赞赏 UPDATE public meditech ar test4 SET filename text WHERE filename i
  • 对 Unity 项目执行版本控制的最佳方法 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发我的第一个大型 Unity 项目 这是一个游戏 我有很多资产 现在他们使用超过 200 Mbs 的硬盘 我想使用像 GIT 这样的控制
  • 更新到 jruby-1.7.13 后,在 jruby 中要求自制 gem 失败

    我使用了 jruby 1 7 0 和测试框架 Test Unit TestCase 现在我更新了一些gems 导致我使用MiniTest Test进行测试 所以我也升级到了jruby 1 7 13 我也有一个 rake 任务 它使用 jav
  • 打印出 SQL 单个查询 (Yii 1.x)

    我有一个使用 CDbCriteria 生成的大量查询 如下所示 schema Yii app gt db gt schema builder schema gt commandBuilder how to echo out this que
  • 灵活的数组成员,不必是最后一个

    我试图弄清楚 C 中是否有一种解决方法可以在结构中拥有灵活的数组成员 这不是最后一个 例如 这会产生编译错误 typedef struct attribute packed uint8 t slaveAddr lt The slave ad
  • Web API 空白参数值被转换为 null

    我有一个简单的 Web API 服务 大约有 10 种不同的 GET 操作 这些操作根据输入参数返回各种数据库记录的 JSON 输出 对于一个特定端点 一个空格 应该是一个有效的参数 但它被转换为 null 有没有解决的办法 例如网址是 h
  • 是否有返回当前类/方法名称的函数? [复制]

    这个问题在这里已经有答案了 在 C 中 是否有返回当前类 方法名称的函数 当前班级名称 this GetType Name 当前方法名称 using System Reflection MethodBase GetCurrentMethod
  • 找不到gunicorn命令,但它在我的requirements.txt中

    我正在 Heroku 上部署 Django 应用程序 该应用程序已成功部署 但当我想在提供的 http 链接上查看该应用程序时 出现以下错误 gunicorn在我的requirements txt file 2020 02 21T16 22
  • 包含类型的类型的模板函数重载

    我正在尝试执行以下操作 include
  • 在Unity中画出流畅的线条真的那么难吗?

    一段时间以来 我一直在尝试在 Unity 中绘制平滑的线条 但使用线条渲染器时 我只获得了锯齿状的线条 且边角不是圆角的 特别是当曲率角度非常小时 我在质量设置中增加了抗锯齿的值 并尝试了不同的材质 但没有任何改变 我还尝试在每次鼠标移动时
  • 无法保留运行之间的空间

    我想生成一个word文档 作为输入 我有这个字符串 开放包装约定 每个单词都有不同的样式 结果应该是open包装惯例 WordprocessingDocument document WordprocessingDocument Create
  • java属性改变监听器

    我需要处理两个类之间的更改交互 public class HeadClass private Subclass sub public void refresh public class Subclass ArrayList store pu