powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача данных из Swing в другой класс
4 сообщений из 4, страница 1 из 1
Передача данных из Swing в другой класс
    #38836183
aarexer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Возник такой вопрос.
Если я делаю Swing-приложение, там отрисовываю textField, в него ввожу данные, то как получить эти данные в другом классе?
Ведь получается, что у нас GUI в одном Thread-е(в event dispathc thread), а нужный класс - в другом.
И как передавать данные туда,в GUI из класса?
...
Рейтинг: 0 / 0
Передача данных из Swing в другой класс
    #38836229
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aarexerВозник такой вопрос.
Такой вопрос на форуме каждые пол-года возникает.

aarexerЕсли я делаю Swing-приложение, там отрисовываю textField, в него ввожу данные, то как получить эти данные в другом
классе?
Чтобы получить данные из textField нужно иметь ссылку на textField.

aarexerВедь получается, что у нас GUI в одном Thread-е(в event dispathc thread), а нужный класс - в другом.
Классы и объекты перпендикулярны потока. Любой поток может обращаться к любому классу. Если вы своих потоков не запускаете и SwingWorker\Executors не используе, то и других потоков кроме EDT у вас не будет.

aarexerИ как передавать данные туда, в GUI из класса?
Оптимальным решением для работы с GUI формами является биндинг и паттерн MVVM. Но в Swing нет родного биндинга. Есть всякие недоделаные фреймверки. Можете воспользоваться ими.

Псевдокодом это выглядит так.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 MyModelBean bean = new MyModelBean();
 new MyAnotherClass(bean);
 new MyGUIForm(bean).setVisible(true);

 class MyAnotherClass{
    MyAnotherClass(MyModelBean bean){
          this.bean = bean;
    }
    void print(){
         System.out.println(this.bean.value());
    }
 }

  class MyGUIForm{
    MyGUIForm(MyModelBean bean){
          this.bean = bean;
    }
 
    void onButtonPressed(){
         this.bean.setValue(this.textField.getText());
    }

  }
 
...
Рейтинг: 0 / 0
Передача данных из Swing в другой класс
    #38837270
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netbeans неплохо связывает поля формы с классом, можно и руками конечно...
...
Рейтинг: 0 / 0
Передача данных из Swing в другой класс
    #38837523
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aarexer, Из другого потока к GUI объектам надо обращаться в контексте EDT потока.
Гугли EventQueue.invokeAndWait() Например, тынц
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача данных из Swing в другой класс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]