![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
elnino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.12.2004 Где: Одесса, Украина Репутация: 1 Всего: 1 |
Создается JWindow, на который я хочу добавить лэйбл:
Этот код не работает. Проблема в том, что окно выводится, а вот метка -- нет. Если изменить тип loadingStatusLabel на Label, то метка отобразится, но при этом я не могу использовать возможности swing. Что делать? Спасибо. |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
У меня все показывает.
Попробуй заменить этот код на эквивалентный, но более простой:
Если все будет так же, будем смотреть. -------------------- |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
-------------------- |
|||
|
||||
igon |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Из доки на JWindow:
Хм, а у меня оригинальный код даже не компилится ![]() После задействования contentPane - все заработало ![]()
Это сообщение отредактировал(а) igon - 3.1.2005, 12:10 -------------------- Хотите поговорить об этом? |
||||||||
|
|||||||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
На самом деле ругаться будет 1.4.х, хотя все скомпилится, но не запустится; 1.5 отсутствие контентпейн прощает, т.к. add перегружен:
-------------------- |
||||
|
|||||
igon |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Надо бы рекомендовать вопрошающим указывать версию JDK.
И переходить на 1.5 ![]() -------------------- Хотите поговорить об этом? |
|||
|
||||
elnino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.12.2004 Где: Одесса, Украина Репутация: 1 Всего: 1 |
Спасибо, что обратили внимание на мой вопрос.
Все равно не работает, и дело здесь, насколько я понял, не в этом коде. Все советы igon справедливы, а альтернативный код Domestic Cat не менее работоспособен, чем приведенный мной в самом начале. Но это касается тех случаев, когда этот код запускается в отдельном классе примитивного проекта. Здесь все несколько сложнее, может быть причина в этом? То есть окно loadingMonitor создается вместе с loadingStatusLabel, после чего моя программа начинает активные действия как, например, загрузка иконок и курсоров, установка сетевых соединений и передача данных через сокеты по сети. Может ли статься такое, что ресурсов моего компа не хватает, для того чтобы нормально перерисовывать loadingMonitor? Понимаю, звучит глупо, но если специально сделать так, чтобы в процессе загрузки основной программы (то есть как раз в то время, когда я наблюдаю на экране ПУСТОЙ loadingMonitor) вылетел Exception, то в loadingMonitor моментально появляется loadingStatusLabel с текстом, соответствующим состоянию загрузки программы на момент вылета этого самого Exception... P.S. Версия java, которой я пользуюсь jdk-1_5_0_01-windows-i586-p.exe P.P.S. Celeron 333MHz, 196 оперативки <= мой зверь ![]() |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Вопрос в том, где ты в программе пытаешься показать это окно. Перенеси его в main - что будет?
Если этот код находится в методе листенера (типа actionPerformed), добавь
-------------------- |
|||
|
||||
elnino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.12.2004 Где: Одесса, Украина Репутация: 1 Всего: 1 |
Финиш! Перепробовал все, что знал. Включая invokeLater(). Уж куда только я его не вставлял...
Вопрос остался открытым: чем отличается, к примеру, JLabel от Label, таким, что при всех описанных выше действиях Label видно всегда и без проблем, а JLabel - только при возникновении исключительной ситуации? Domestic Cat, ты права: этот злополучный код выполняется в actionListener() кнопки. Вне его, как ты понимаешь, проблем с окном "loadingMonitor" не возникает. P.S. Кстати, при использовании invokeLater() не видно даже окна (до исключения) |
|||
|
||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Гыыы я пока пол не менял Возьми весь код, не относящийся к окну, и помести его в отдельный тред:
а код с окном оставь в invokeLater. Ну и смотри - будет появляться или нет. -------------------- |
||||
|
|||||
elnino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.12.2004 Где: Одесса, Украина Репутация: 1 Всего: 1 |
2 Domestic Cat: уупс, гранд сори
![]() Есть предложение: для демонстрации всего вышесказанного, взять вот этот код:
...и потестить его у себя. У кого какие комментарии? Скажу сразу, что происходит у меня: Label видно сразу вместе с окном, а JLabel не появляется до тех пор, пока цикл не закончит свою работу. Если же раскомментировать строки с "invokeLater()", то до окончания работы цикла не появляется даже окно... У вас так же или это у меня глюк? Не поленитесь, пожалуйста ![]() P.S. Сори за неудобочитаемость кода, не хотел занимать слишком много места |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Я ж говoрил - сделай так:
У тебя тред диспетчерa вынужден считать косинусы вместo тогo чтобы лабел рисовать. Добавлено @ 21:24 Насчет лейблов - у меня рисуются оба (с учетом моего кода). -------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |