![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| popov654 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 9.1.2009 Репутация: нет Всего: нет |
Добрый день!
Помогите пожалуйста, я новичок, в рисовании и Swing разбираюсь не очень, хотя вот это попытался осилить: http://www.skipy.ru/technics/gui_int.html Правда, ответа там не нашёл. Такая странная проблема: я создал свой класс, наследующий JLabel. Тупой класс, счётчик итераций. Его задача - выводить цифорку нужным шрифтом в красивой рамочке с заголовком, и контролировать изменение значений (я правда "родные" методы переопределять не стал, лишь добавил свои). И второй похожий класс, но он выводит название алгоритма (строку) и другим цветом. Сперва я очень долго мучался, пытаясь разместить в нужной позиции эти виджеты. Мне нужно было, чтобы они "привязывались" к правой границе окна, банальный setBounds() это сделать не позволял. Тогда я решил влезть в блок сгенерированного NetBeans кода и прописать туда ручками нужную установку, модифицировав метод initComponents(). Почему я туда полез, а не стал размещать свои объекты сам? Потому что там вот такой код:
Честно говоря, я побоялся внедрять свои объекты отдельно, тем более не понимая толком, что делаю. Копировать же половину метода initComponents() мне тоже совершенно не хотелось. И мне всё удалось как я хотел. Но подлянка заключалась в том, что IDE при первых же действиях в визуальном редакторе после сохранения результатов весь мой добавленный код затирала. После третьего раза я догадался сохранить код в текстовый файл, но я умучался каждый раз вручную копипастить его содержимое. Ещё до этого я пытался вставить свои объекты в служебный файл .form, но среда страшно ругалась и открывала форму в режиме Read-Only. Тогда я покопался в хелпах и узнал, что компоненты можно импортировать на палитру. Ура - подумал я, и принялся за дело. Даже отказался от паттерна Singleton и приватного конструктора (который впрочем был нафиг не нужен Как бы не так! Значения моих компонентов перестали изменяться. Вообще. То есть что задашь в диспетчере свойств, такой текст и будет. Программно содержимое не поменять никак. Пробовал обращаться из разных классов, в разное время (например, при запуске, в конструкторе, когда ещё не открыто других окон - я грешил на то, что это происходит из-за открытия другого окна и потери фокуса главным). То есть может, свойство и меняется, но компоненты не перерисовываются. Или наоборот. Но как бы то ни было, на экране всё глухо. Что делать, как лечить?.. Это сообщение отредактировал(а) popov654 - 31.1.2011, 10:18 |
|||
|
||||
| aleksandy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 17.12.2006 Репутация: 1 Всего: 5 |
Ты бы лучше картинки показал: как есть и как надо. Или код полный привел.
|
|||
|
||||
| popov654 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 9.1.2009 Репутация: нет Всего: нет |
Всё, проблема решена.
Ошибка была в том, что я в конструкторе главного большого класса, уже после вызова стандартного initComponents(), где всё создаётся и размещается в контейнере, сказал:
Я сейчас проверил - догадка оказалась верна: графический контекст, который я пытался использовать при переопределении paint(), paintComponent() и чего-то ещё (я даже пытался надпись "ручками" рисовать через Graphics2D Добавлено через 1 минуту и 26 секунд И да, свойство действительно изменялось |
|||
|
||||
![]()
|
| Правила форума "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. |