powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Доступ к форме из класса
25 сообщений из 35, страница 1 из 2
Доступ к форме из класса
    #38456801
sharmanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть класс с формой Form1 и обычный класс. Нужно из обычного класса поменять свойства объекта на форме
Сделал сеттер в классе Form1:
Код: java
1.
2.
3.
public void setTxt(String text) {
        jTextArea1.setText(text);
    }


А в обычном классе пишу:
Код: java
1.
2.
        Form1 f1 = new Form1();
        f1.setTxt("blabla");


Получаю шиш. Как сделать, чтобы работало?
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38456815
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартная вопрос у тех кто взял NetBeans на кликал там всякую ерунду абсолютно не понимая, как оно на уровне Java кода вообще работает. Буквально пару недель назад аналогичная тема была.
Как же из одного класса обратиться к другому. Не понятно.
Что такое объекты, классы, поля и методы понятно?
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38456818
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.sql.ru/forum/1053935/peredat-stroku-v-pole-obekta-ekz-klassa-iz-drugogo-obekta-po-sobytiu
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38456821
sharmanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczЧто такое объекты, классы, поля и методы понятно?
Естественно.
Да, конечно можно через конструктор сделать установку значения. Интересуют, есть ли другие способы.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38456825
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sharmankaИнтересуют, есть ли другие способы.
да полно
через ссылку одного объекта на другой
через статическое поле
через не статическое поле
через слушатель
через binding
читайте ссылку что привел выше, смотрите туториалы по Swing
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38456859
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sharmanka, если ваши внешние классы - являются WorkerThreads то не забывайте
про особенности синхронизации в Swing.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38456881
sharmanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonsharmanka, если ваши внешние классы - являются WorkerThreads то не забывайте
про особенности синхронизации в Swing.
внешний классы имплементируют Runnable интерфейс. Т.е каждая нить у меня должна писать свой текст.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38456968
sharmanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправьте меня, если я неправ. Вместо создания нового экземпляра Form1 нужно получить ссылку на существующий. Проблема в том, что создавая статический метод для возврата ссылки мне нужно оперировать с Form1, которая ни разу не статическая, о чем любезно сообщает компилятор.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457081
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sharmanka,

Кто мешает из не-статического кода формы (к примеру из конструктора) сохранить в статическое поле (private static Form1 instance;) ссылку на себя (instance = this; )
и через статический геттер ее получать
public static Form1 getInstance(){
return instance;
}
????
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457090
sharmanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrew1411,
не додумался :( Большое спасибо!
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457127
Troglodit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем вам статический класс GUI-окна?
На мой взгляд у вас направление мысли в первом посте было абсолютно верное.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457149
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Troglodit,
в первом посте по всей видимости создавалась просто новая форма, не имеющая отношения к той, в которой нужно изменить текст.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457396
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sharmanka,

Только не забывайте при закрытии формы очищать instance, иначе горбатый коллектор ее не соберет :)

если прилада многопоточная - поле instence делайте volatile
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457433
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411sharmanka,

Кто мешает из не-статического кода формы (к примеру из конструктора) сохранить в статическое поле (private static Form1 instance;) ссылку на себя (instance = this; )
и через статический геттер ее получать
public static Form1 getInstance(){
return instance;
}
????
Форма-синглтон, вот это круто!
Неучи учат других неучей, до чего скатился форум...
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457532
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTID,

1. Есть множество примеров, когда форма единстенная. (посмотрим на диалоговые?)
2. Автор спрашивал конкретику, на что и получил конкретику.
3. Надо будет поддерживать множество форм - либо тупо сделает локатор, либо наконец почитает книжки и сделает правильно.
4. я не собираюсь учить, я отвечаю на конкретный вопрос (не правильная постановка ведет к неправильному ответу, если бы у автора одновременно было бы несколько экземпляров, он бы это упомянул, либо ССЗБ)
5. Троль на выпасе вместо ответа автору тролит.
6. И наконец. десктоп приладами я не занимаюсь (совсем). <spam>Вы, как специалист можете проконсультировать его в своем любимом ПТ по проблемам форм в 1C.</spam>
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457541
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTIDФорма-синглтон, вот это круто!
Неучи учат других неучей, до чего скатился форум...
Ну, так показал бы примером как надо.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457568
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, проведу небольшой ликбез.
А то все троллю, да троллю, может что полезное скажу.

Автору в первую очередь учить паттерн MVC.
Сразу его понять конечно же не получится,
как минимум будет стойкое ощущение, что контроллер не нужен.

Синглтоном (т.е. хранить в статическом поле, voilatile, как правильно сказал Andrew1411)
нужно сделать Главный контроллер приложения,
это контроллер из паттерна MVC, но не формы, а всей программы.

Дальше, главный контроллер создает другой контроллер (назовем его контроллер2),
отвечающий за работу с тем, что делается в этой форме.
И записывает его себе в поле, с геттером и сеттером.

Контроллер2 создает модель данных того, с чем работает форма, и саму форму.
Лучшее решение взаимодействия формы и модели - Binding, но, чтобы сразу не переусложнять,
можно просто передать модель в конструктор формы. Вызов конструктора формы будет в контроллере2.

Из любого места приложения можно получить главный контроллер, пользуясь его методами, получить контроллер2.
А из него модель данных. Саму форму получать не надо!
Но если не придумаете как обойтись без этого, для начала, можете даже получить форму.

Вот это правильная архитектура для любых десктопных систем, в том числе и на Swing.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457589
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTIDАвтору в первую очередь учить паттерн MVC.

Автор ещё не знает как в одном объекте использовать ссылку на второй объект а тут ему сразу MVC, по которму, кстати для Swing внятных примеров нет. Потому что Swing устроен не совсем как классический MVC. К тому же классический MVC для GUI вообще избыточен, поэтому используют другие подходы.

HoBTIDСразу его понять конечно же не получится, как минимум будет стойкое ощущение, что контроллер не нужен.

В Swing контроллер интегруруется в контрол, который в то же время и View.

HoBTIDСинглтоном (т.е. хранить в статическом поле, voilatile, как правильно сказал Andrew1411)
нужно сделать Главный контроллер приложения,
это контроллер из паттерна MVC, но не формы, а всей программы.

HoBTIDДальше, главный контроллер создает другой контроллер (назовем его контроллер2),
отвечающий за работу с тем, что делается в этой форме.
И записывает его себе в поле, с геттером и сеттером.
Это даже я себе представляю в голове с трудом. Сомневаюсь что автору вообще это как-то поможет.

HoBTIDКонтроллер2 создает модель данных того, с чем работает форма, и саму форму.
Лучшее решение взаимодействия формы и модели - Binding, но, чтобы сразу не переусложнять,
можно просто передать модель в конструктор формы. Вызов конструктора формы будет в контроллере2.

С биндингом уже сразу получится MVVM.

HoBTIDИз любого места приложения можно получить главный контроллер, пользуясь его методами, получить контроллер2.
А из него модель данных. Саму форму получать не надо!
Но если не придумаете как обойтись без этого, для начала, можете даже получить форму.
Самое интересно что эти все разглогольствования вообще не объясняют как это всё связать воедино. У автора модель с контролом не выходит связать. А тут ему ещё и контроллер нужно как-то добавить.

HoBTIDВот это правильная архитектура для любых десктопных систем, в том числе и на Swing.
LOL. Какая роль у контроллера, не понятно. Как контроллер будет уживаться с анонимными классами, которые исполняют роль контроллера во всех примерах Swing - тоже не понятно.
Как это всё вообще решает проблему автора не понятно в двойне.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457609
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTID,

Все верно сказано, но в переводе на русский это звучит примерно так: "ТС, просай писать, садись учить уроки".
Но, учиться лучше в процессе работы.

Скорее всего, Тпикстартеру лучше сейчас изучать не MVC (что, в его случае, безусловно полезно), а начать с IoC, что быстрее внедрить в нужные места. Если в приладе часть форм сделана с учетом паттерна MVC, а часть мышекодингом, - то это явная хрень. Кроме того, MVC лучше юзать как раз с IoC. таким образом, будет более правильное развитие.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457667
sharmanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TrogloditА зачем вам статический класс GUI-окна?
Мне нужно изменять элементы на форме из другого класса.
TrogloditНа мой взгляд у вас направление мысли в первом посте было абсолютно верное. Разве? Там же создавался новый экземпляр объекта формы, а не получался текущий.

Andrew1411Только не забывайте при закрытии формы очищать instance, иначе горбатый коллектор ее не соберет :)
если прилада многопоточная - поле instence делайте volatile
Сделал и то, и другое, спасибо за замечания.
Andrew1411Все верно сказано, но в переводе на русский это звучит примерно так: "ТС, просай писать, садись учить уроки".
Да я бы и рад почитать про MVC и прочие интересные вещи, но к сожалению, у меня не студенческие лабы, а вполне конкретные задачи и Java всего лишь инструмент для их решения. Если код, который у меня выполняет задачу, занимает 5 строк, то зачем городить лес и его раздувать? Я понимаю, что это показывает крутой скилл программиста, знания паттернов, но мне не перед кем хвастаться :)
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457698
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411Скорее всего, Тпикстартеру лучше сейчас изучать не MVC (что, в его случае, безусловно полезно), а начать с IoC, что быстрее внедрить в нужные места. Если в приладе часть форм сделана с учетом паттерна MVC, а часть мышекодингом, - то это явная хрень. Кроме того, MVC лучше юзать как раз с IoC. таким образом, будет более правильное развитие.
Нет
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457750
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВ Swing контроллер интегруруется в контрол, который в то же время и View.
Вот это да!!!
Уж Вы-то знаете паттерн MVC, я был полностью этом уверен, до вышеприведенного высказывания...

В контролах Swing нет контроллера , потому что его должна реализовать программа, использующая эти контролы!
Контроллер связывает представление и модель, причем модель, содержащую фактические данные,
т.е. бизнес-модель, а не модель представления.

Рассмотрим на примере, класс JTable - контрол управления таблицей.
TableModel - интерфейс модели представления - это не бизнес-модель ,
это модель представления .

В паттерне MVC и класс JTable и любой класс, реализующий TableModel относятся к View.
Swing реализует паттерн MVVM и в нем TableModel - это ViewModel.
Ни модели, ни контроллера из паттерна MVC здесь нет (в общем случае нет, про совмещение ролей, чуть ниже).
А бизнес-моделью таблицы, будет являться например, List<MyBusinessObject>.

Однако для простоты начала работы со Свингом, есть класс DefaultTableModel, который совмещает роли
модели представления и бизнес-модели , т.е. он реализует интерфейс TableModel и хранит
фактические данные в двухмерном массиве объектов, но даже в этом случае,
контроллер не DefaultTableModel и не JTable, а тот класс, который создает DefaultTableModel и JTable.

В заключение, контроллера нет и не может быть ни в Swing, ни в любой другой интерфейсной библиотеке,
потому что эта библиотека ничего не знает о фактических данных.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457754
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonAndrew1411Скорее всего, Тпикстартеру лучше сейчас изучать не MVC (что, в его случае, безусловно полезно), а начать с IoC, что быстрее внедрить в нужные места. Если в приладе часть форм сделана с учетом паттерна MVC, а часть мышекодингом, - то это явная хрень. Кроме того, MVC лучше юзать как раз с IoC. таким образом, будет более правильное развитие.
Нет
Вот с этим согласен (с "Нет"), как раз IoC для начала совсем не нужен, а MVC - база, без которой и шагу ступить нельзя.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457758
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в шормошлепстве - да. но представляете, есть задачи где нет общения с пользователем, зато сильная связанность в больших проектах вредит.
...
Рейтинг: 0 / 0
Доступ к форме из класса
    #38457762
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411,

наверно Hibernate, Log4J и т.д. лохи писали, раз MVC не применили :) но куда его там? )))))
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Доступ к форме из класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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