问题标签 [propertychangelistener]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
87 浏览

eclipse - 恢复默认值时未调用 propertyChange

我正在构建一个扩展 FieldEditorPreferencePage 类的首选项页面。这是代码(一些明显的代码没有显示):

propertyChange 方法用于根据 BooleanFieldEditor 值启用/禁用 FileFieldEditor。

如果我通过选中或取消选中 BooleanFieldEditor 值来更改它,它可以正常工作,但是当我点击“恢复默认值”按钮时不会调用 propertyChange。

有人看到原因吗?

0 投票
1 回答
956 浏览

java - 为什么 Java 中的 PeropertyChangeListener 不能按照 oracle 的教程工作?

为什么这不起作用?我通过查看https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html#boundhttps://docs.oracle.com/javase/tutorial/uiswing/中的示例实现了这一点events/propertychangelistener.html 即使这篇文章也没有帮助我Java PropertyChangeListener和其他人,我不会链接我浏览过的所有帖子,所以我做错了什么或者我误解了 Listener 的工作原理?这是我的代码:

我的听众课:

我的主要条目:

因此,当我person1在这种情况下设置新值时nameaddress我希望为每个值propertyChanged调用该方法PersonChangeListener。但这不会发生,至少我没有在控制台中输出任何内容。

无论如何是因为PropertyChangeListener它只适用于某些特定的java库,如javafx或类似的?我必须实现自定义事件触发器吗?

0 投票
1 回答
3999 浏览

java - 使用属性更改监听器来更新摆动组件

我是第一次使用属性更改监听器,所以我不太熟悉它应该在几个类之间使用的方式。
我正在用 java 编写一个下载管理器,在类 Download 中有诸如 downloadSize 和 sizeOfFile 等字段。还有类 DownloadPanel 它是 GUI,是一个 jpanel,包含一个 JProgressbar 和几个 JLabels 来显示文件的数量是下载或文件大小(使用下载字段)。
Download 类扩展 SwingWorker 并使用 HttpURLConnection 从特定 URL 下载给定文件。
在下载文件以更新其下载面板时,我实现了属性更改侦听器。问题是 JProgressbar 正在正确更新,但显示下载大小和 sizeOfFile 的 JLabel 不会通过下载文件而改变。

请注意,类中不相关的部分和 getter/setter 被省略,只包括与问题相关的部分。

属性更改监听器的实现:

DownloadPanel 类的代码:

和类下载:

0 投票
1 回答
285 浏览

javafx - 为什么 TableView 的更改侦听器会为 ObjectProperty 提供不同的结果与 JavaFX8 中的 TProperty 列?

一个相对的 Java 新手问题。

我有一个带有提取器的 TableView 并ListChangeListener添加到底层的 ObservableList 中。

如果我StringProperty在数据模型中有一个列,如果我双击单元格然后按 ENTER 而不进行任何更改,则更改侦听器不会检测到更改。那挺好的。

但是,如果我将列定义为ObjectProperty<String>并双击然后按 ENTER,则即使未进行任何更改,更改侦听器也始终会检测到更改

为什么会这样?ObjectProperty<String>从改变听众的角度来看和StringProperty从改变听众的角度来看有什么区别?

我已经阅读了 SimpleStringProperty 和 StringPropertyJavaFX SimpleObjectProperty<T> vs SimpleTProperty之间的区别,并认为我理解这些区别。但我不明白为什么更改侦听器会为TProperty/SimpleTPropertyObjectProperty<T>.

如果有帮助,这里是我有点荒谬的案例的 MVCE。我实际上正在尝试让更改侦听器为BigDecimalLocalDate列工作,并且已经坚持了 5 天。如果我能理解为什么更改监听器会给出不同的结果,我也许可以让我的代码正常工作。

我正在使用 JavaFX8 (JDK1.8.0_181)、NetBeans 8.2 和 Scene Builder 8.3。

0 投票
1 回答
283 浏览

java - 更快地通知 PropertyChangeListener

因此,我正在创建一个 JProgressBar 来显示 CSV 操作的进度,其中每一行都被读取并检查是否在强制性 ( NOT NULL ) 列中没有空值。为此,我创建了一个 SwingWorker 任务,它处理将文件中的行数转换为最大进度值的 100%,并以正确的速率累加进度。

这就是 SwingWorker:

My PropertyChangeListener由 JProgressBar 包装器实现

然后,在我实际使用它的地方,我doInBackground()用我需要的处理覆盖该方法,调用step()每次迭代。

那么发生了什么:处理工作并成功,然后done()被调用,然后propertyChange()注册两个“状态”事件和一个“进度”事件,将 ProgressBar 的进度从 0% 设置为 100%。

发生了 什么我认为正在发生的事情(检查 Hovercraft 的答案以获得澄清)在 JavaDocs 中有描述:

因为在事件调度线程上异步通知 PropertyChangeListeners,所以在调用任何 PropertyChangeListeners 之前可能会发生对 setProgress 方法的多次调用。出于性能目的,所有这些调用仅与最后一个调用参数合并为一个调用。

所以,毕竟,我的问题是:我做错了吗?如果没有,我有没有办法让事件调度线程在 onProgress() 发生时通知 PropertyChangeListeners,或者至少不时通知?

观察:我正在测试的处理需要 3~5 秒。

0 投票
1 回答
772 浏览

java-11 - Java 11 - java/beans/PropertyChangeListener

使用java11获得以下信息。这在 java 8 上运行良好。请提出建议。仅在 eclipse 4.12 中运行时才会发生这种情况有没有一种方法可以在 eclipse 中的合规级别为 1.8 时添加模块 java.desktop。

0 投票
1 回答
181 浏览

java - ListSelectionListener 在调用 setSelected 方法时不会触发事件

这里的第一个问题,希望我能正确地做到这一点。

下面是我的问题的一个最小示例,我很快就代表了我的项目。我为包含一些对象的 JList 创建了一个自定义渲染器(在示例中,我使用字符串进行说明)。我的问题是,据我所知,如果我将 a 添加ListSelectionListener到列表中,则setSelected...()方法系列不会触发触发条件的事件if(e.getValueIsAdjusting())

在下面的示例中,问题在启动程序时立即显而易见:即使list.setSelectedIndex(2);在将 JLabel 的选定文本指定为“无”之后调用,它也不会改变,直到您(用户)单击列表项。事实上,它必须是与当前选择的项目不同的项目。

我想要这个功能,这样我的程序流程将是,在用户从列表中添加/删除项目后,一旦选定的列表项目发生更改,“视图”就会立即更新。

我做错了什么,还是我错误地处理了这个问题?

谢谢你。:)

0 投票
1 回答
42 浏览

java - 有没有办法监视方法,以便在代码的其他地方执行另一种方法?

有人可以帮助我并解释如何最好地观察一种方法。这意味着当某个方法被执行时,整个系统应该在另一个点内部重新计算,例如。例如,上传文件时也是如此,则应在后台触发某些计算。

观察者已被弃用,我认为 PropertyChangeListener 对我没有帮助。

有没有人知道如何在 Java 中映射这种情况?

谢谢

0 投票
1 回答
196 浏览

java - 在 java Swing 中处理来自复合组件的事件

我做了一个桌面应用程序来处理一些 Web 服务的配置,它可以工作但代码很难维护,因为所有的逻辑视图都在同一个类(主类)中,所以我决定重做它并应用 MVC 架构和React 哲学将复杂的应用程序拆分为简单且可重用的组件。我最终得到了这个: 应用程序

我的应用程序有JFrame一个 main JPanel,这个 mainJPanel有许多其他的,JPanel但 mains 是用于演示目的。centerJPanel 有我的复合组件(蓝色矩形),ContenedorSwtBtncenterJPanelSaveJPanel

我的ContenedorSwtBtnJPanel,JLabel标题和SwitchToggleBtn组件组成,我可以拥有任意数量的SwitchToggleBtn,因为我的想法是动态添加它们。

竞争者SwtBtn

我的SwitchToggleBtn包含一个JPanel,JLabel用于名称,和JToggleButton.

开关切换按钮

MyComponent 的代码(对不起,西班牙语单词): SwitchToggleBtn:

ContenedorSwtBtn 的代码(对不起,西班牙语单词):

这是最终结果:

最后

当我单击SwichToggleBtn组件内的 JToggleButton 时,它会更改他的状态并将图标从关闭更改为打开,反之亦然。

最后是创建新组件并将其添加到主 JPanel 中,如下所示:

当我单击 JToggleButton 并更改其状态时,我想要确切的组件及其当前状态,但来自主 Jpanel 或中心面板,这样我就可以“保存更改”(来自 SaveJpanel 的红色按钮)并实现一些逻辑来保存配置. 我如何将事件从子组件传递给父组件,或者如何从父组件知道子组件何时更改其状态。我读过关于创建一个实现 actionlistener 接口或实现 PropertyChangesListener 接口的类,但我不明白。非常感谢你的帮助。

0 投票
3 回答
81 浏览

c# - Outlook.MailItem.PropertyChange 在 9 个事件后停止触发

我正在开发一个 Outlook 加载项,该加载项根据我的生产经理发送给我的电子邮件来管理项目列表。我的项目在 Outlook 中的 VBA 中运行良好,但我厌倦了看到使用 VBA 时弹出的安全消息。因此,我将其转换为 .Net 插件。我已经在 c# 中实现了这一点,但是我遇到了 Outlook.MailItem.PropertyChange 事件的事件侦听器的问题。这个想法是我可以使用快速单击类别将电子邮件移动到队列文件夹中,然后在移动后对该电子邮件运行一些处理。

我正在使用下面的代码订阅 Startup 方法中的事件处理程序...

我遇到的问题是该事件完美触发了大约 9 封电子邮件,然后它停止工作,但资源管理器中的第一封电子邮件除外。对于我的一生,我无法弄清楚其余电子邮件的事件触发器的处理方式。

我在类级别使用以下定义......

这是我的 PropertyChange 事件处理程序的定义......

我错过了什么?提前感谢您的关注。