将Java文本框链接到外部类中的字符串

时间:2009-03-27 14:51:30

标签: java swing

我目前正在开发一个项目,其中我有一个Java GUI类,另一个类包含相关的方法。

我希望GUI中的文本区域在其更改时使用其他类中的字符串内容进行更新。观察这些变化的最简单方法是什么?

干杯!

3 个答案:

答案 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)

查看BeansBinding

它几乎完全符合您的需要。唯一的事情是你的otherClass必须支持Java Beans监听器,如@ordnungswidrig所述