![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| filipp76 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 4.4.2007 Где: Украина, Киев Репутация: 1 Всего: 1 |
Обьясню проблему, у меня есть фрейм на котором весит JTabbedPane. Из класса этого фрейма запускаю поток который получает масив названий закладок, он перебирает этот масив, если закладка с указанным именем не найдена он её создаёт. Так вот например есть 1 закладка, после добавления другой метод getTabCount возвращает 1!!! Хотя закладки уже 2. Не понимаю в чем баг. Помогите пожалуйста!!
|
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Приведите код. Вероятнее всего, никакого бага нет.
Кстати, вы, надеюсь, знаете, что swing-компоненты не рассчитаны на взаимодействие с другими потоками? -------------------- ![]() ![]() |
|||
|
||||
| filipp76 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 4.4.2007 Где: Украина, Киев Репутация: 1 Всего: 1 |
Не знал! Чтот я не понимаю, неужели из другого потока нельзя изменять свойства swing компонентов??? Кода очень много приведу приблизительно как это работает.
Вот приблизительно то что есть, так вот при запуске у меня создавались одинаковые вкладки, не мог разобратся в чем проблема, потом оказалось что метод getTabCount возвращает одно и тоже значение после запуска, например было 3 вкладки, я запускаю проверку и он постоянно возвращает мне 3, потому и создается куча одинаковых. Что я только не делал не работает и все. Вкладки создаются, после завершения проверки вся куча одинаковых табов на месте, а вот метод работает не правильно. Что делать подскажите?? Это сообщение отредактировал(а) filipp76 - 10.6.2007, 11:25 |
||||
|
|||||
| ilia1234 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2007 Репутация: нет Всего: нет |
Можно решить проблему через использование PropertyChangeListener.
Попробуйте следующее: 1. В потоке в котором определена JTabbedPane создайте экземпляр класса java.beans.PropertyChangeSupport следующим образом:
2. В другой поток передаете ссылку на объект propertyChangeSupport и там где раньше Вы производили вставку новой вкладки выполняете следующее:
Это сообщение отредактировал(а) ilia1234 - 10.6.2007, 12:53 |
||||
|
|||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
filipp76, ilia1234, нужно использовать SwingUtilitiуes.invokeLater() или SwingUtilitiуes.invokeAndWait() для выполнения кода в потоке обработки событий swing.
-------------------- ![]() ![]() |
|||
|
||||
| filipp76 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 4.4.2007 Где: Украина, Киев Репутация: 1 Всего: 1 |
Можно не много поподробней....? Хочется все сделать наиболее безболезненным методом, приложение уже закончено осталось исправить этот баг.... |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Посмотрите тему Оптимизация потока, его приостановка и запуск, пример в сообщении #2.
-------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |