使用PropertyChangeSupport/PropertyChangeListener监控变量
来源:互联网 发布:淘宝晒图 编辑:程序博客网 时间:2024/05/21 03:25
使用PropertyChangeSupport/PropertyChangeListener监控变量
下面是SWT的一个简单示例,Bean是一个被监听对象,BeanListener是Bean的监听器:
package swt.PropertyChange.idesvo; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; public class Bean { /** 被监控变量 */ private int property; private PropertyChangeSupport support = new PropertyChangeSupport(this); public void setProperty(int newValue) { int oldValue = property; property = newValue; // 变量变化时,触发监听 support.firePropertyChange("property", oldValue, newValue); } /** 注册监听器 */ public void addPropertyChangeListener(PropertyChangeListener listener) { support.addPropertyChangeListener(listener); } /** 移除监听器 */ public void removePropertyChangeListener(PropertyChangeListener listener) { support.removePropertyChangeListener(listener); } }
package swt.PropertyChange.idesvo; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Scale; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Slider; public class BeanListener extends Label implements PropertyChangeListener { public BeanListener(Composite parent, int style) { super(parent, style); test.addPropertyChangeListener(this);// 注册监听 } Bean test = new Bean(); /** 监听变化 */ public void propertyChange(PropertyChangeEvent evt) { setText("OldValue: " + evt.getOldValue() + " NewValue: " + evt.getNewValue()); } public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); final BeanListener listener = new BeanListener(shell, SWT.None); // Slider final Slider slider = new Slider(shell, SWT.HORIZONTAL); slider.setBounds(10, 10, 200, 20); slider.setMinimum(0); slider.setMaximum(100); slider.setThumb(50); slider.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { // 设置变量的变化 listener.test.setProperty(slider.getSelection()); } }); // Scale final Scale scale = new Scale(shell, SWT.HORIZONTAL); scale.setBounds(10, 50, 200, 72); scale.setMinimum(0); scale.setMaximum(100); scale.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { // 设置变量的变化 listener.test.setProperty(scale.getSelection()); } }); listener.setBounds(10, 140, 300, 30); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } protected void checkSubclass() { } }
0 0
- 使用PropertyChangeSupport/PropertyChangeListener监控变量
- 使用PropertyChangeSupport监听变量变化
- [Java学习小记]使用PropertyChangeSupport来监听变量的变化
- PropertyChangeListener接口使用初探
- PropertyChangeListener接口使用初探
- PropertyChangeListener接口使用初探
- PropertyChangeSupport的使用
- PropertyChangeListener
- PropertyChangeListener
- 源组件(bean)的属性改变支持PropertyChangeSupport和属性改变监听PropertyChangeListener
- Bean中PropertyChangeSupport的使用
- Java:在Bean中使用PropertyChangeSupport支持PropertyChangeListeners
- 监控未使用绑定变量的语句
- PropertyChangeSupport类
- PropertyChangeSupport类
- Java:在Bean中使用PropertyChangeSupport支持PropertyChangeListeners 2007-08-03 18:1
- java的PropertyChangeListener
- 关于JavaBean的PropertyChangeListener
- 解决live重启端口冲突
- WIN7配置IIS局域网不能访问
- nginx+tomcat6.0的session共享
- 初识压缩感知Compressive Sensing
- jsp 连接MySQL实例
- 使用PropertyChangeSupport/PropertyChangeListener监控变量
- ubuntu 12.04上MySQL 5.6 cmake 编译安装
- LeetCode | Insert Interval
- 黑马程序员_网络编程
- android获取屏幕大小
- 菜鸟Android学习之路27——notification
- VB.Net检查进程是否存在及关闭进程
- Activity对话框样式. 点击空白区域关闭窗口
- Install chrome in Ubuntu