我目前正在开发一个项目,其中我有一个Java GUI类,另一个类包含相关的方法。
我希望GUI中的文本区域在其更改时使用其他类中的字符串内容进行更新。观察这些变化的最简单方法是什么?
干杯!
答案 0 :(得分:3)
您正在寻找数据绑定。遗憾的是,Java没有自己的支持,但有几个库可供选择,例如JGoodies data binding。
如果你想自己动手,那么无处不在的观察者模式你无疑已经从Swing :)知道了。只需向持有字符串的类添加侦听器支持,并在事件发生时为其添加一个更新文本区域的侦听器。
答案 1 :(得分:1)
使“其他类”成为支持PropertyChangeListeners的正确bean。然后创建一个PropertyChangeLister,它对“其他类”中的更改进行了更新,并更新了textarea。
某些人喜欢这样:otherClass.addPropertyChangeListener("propertyname", new PropertyChangeListener() {
void propertyChange(PropertyChangeEvent evt) {
textarea.setText(evt.getNewValue());
}
}
见
http://java.sun.com/j2se/1.4.2/docs/api/java/beans/PropertyChangeListener.html
http://java.sun.com/j2se/1.4.2/docs/api/java/beans/PropertyChangeSupport.html
http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html
答案 2 :(得分:0)
它几乎完全符合您的需要。唯一的事情是你的otherClass必须支持Java Beans监听器,如@ordnungswidrig所述