Связать текстовое поле Java со строкой во внешнем классе - PullRequest
0 голосов
/ 27 марта 2009

В настоящее время я работаю над проектом, в котором у меня есть класс Java GUI и другой класс, который содержит соответствующие методы.

Я хочу, чтобы текстовая область в графическом интерфейсе обновлялась содержимым строки в другом классе всякий раз, когда она изменяется. Как проще всего следить за этими изменениями?

Ура! * * 1005

Ответы [ 3 ]

3 голосов
/ 27 марта 2009

Вы ищете привязку данных. Java, к сожалению, не имеет собственной поддержки для этого, но есть несколько библиотек на выбор, например, JGoodies datainding .

Если вы хотите бросить свой собственный, есть вездесущий паттерн наблюдателя, который вы, несомненно, уже знаете из Swing :). Просто добавьте поддержку слушателя в класс, содержащий строки, и добавьте в него слушателя, который обновляет текстовую область, когда происходит событие.

1 голос
/ 27 марта 2009

Сделайте "другой класс" правильным компонентом, который поддерживает PropertyChangeListeners. Затем создайте PropertyChangeLister, который обрабатывает изменения в «другом классе» и обновляет текстовую область.

Что-то вроде этого:

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

0 голосов
/ 03 апреля 2009

Взгляните на BeansBinding

Он делает почти то, что вам нужно. Единственное, что ваш otherClass должен поддерживать прослушиватели Java Beans, как описано в @ ordnungswidrig

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...