|
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 16
|
||||||
Программное добавление компонента. NetBeans.19.01.2011, 13:51. Показов 4928. Ответов 10
Метки нет (Все метки)
Допустим, есть у меня на фрейме панель. Хочу программно добавить кнопку. Делаю так.
0
|
||||||
| 19.01.2011, 13:51 | |
|
Ответы с готовыми решениями:
10
Добавление модуля UML в NetBeans 6.5 Добавление проекта в NetBeans JTable в NetBeans: добавление столбцов |
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 19.01.2011, 19:59 | |
|
Как это ни парадоксально, но виноваты Вы сами. Вы не разобрались, какой менеджер раскладки используется NetBeans по умолчанию. Посмотрите, какие телодвижения предпринимаются в initComponents для добавления элементов, Вам понравится. Сравните с Вашим вариантом.
В общем, я бы лично поменял раскладку на GridBagLayout, так у Вас существенно больше шансов добавить что-то руками, при грамотном использовании, разумеется. P.S. Интерфейс я лично пишу в основном руками. Получается быстрее и более предсказуемо.
0
|
|
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 19.01.2011, 20:11 | |
|
чтобы отобразить компонент, достаточно перерисовать компонент после добавления элемента. не взирая на используемый менеджер компонент присутствует. достаточно изменить размеры окна, что вызовет его перерисовку, и можно лицезреть добавленный элемент
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 20.01.2011, 10:57 | |
|
Вы пребываете в иллюзии.
1. Компонента вполне может не присутствовать. Скажем, при использовании BorderLayout два последовательных вызова add(Component) приведут к тому, что первая добавляемая компонента будет удалена из контейнера. 2. Компонента может присутствовать, но менеджер не знает, где ее расположить. Ибо не имеет дополнительных данных по привязке. Это именно наш случай. 3. Компонента может присутствовать, но менеджер выставит ей размер 0x0, ибо опять-таки не знает, как ее расположить. 4. Компонента может располагаться за пределами видимой части контейнера. Этим грешит FlowLayout. В любом из перечисленных случаев отрисовка ничего не даст.
0
|
|
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|||
| 20.01.2011, 12:00 | |||
|
пример в студию, а лучше по примеру на каждый из пунктов. надо разобраться в вопросе.
0
|
|||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|||||||||||
| 20.01.2011, 14:08 | |||||||||||
|
Ну вот Вам пример на оба пункта.
Итого мы имеем: поле есть в контейнере, но из-за отсутствия описателя менеджер раскладки не знает, куда его поместить и, соответственно, какие размеры ему дать. P.S. С GroupLayout это демонстрируется так же просто, но я его очень не люблю.
0
|
|||||||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|||||||
| 20.01.2011, 15:14 | |||||||
![]() наполните чем-нить ваш "невидимый" элемент строка 21 вашего кода
выбранный вами манагер, да и любой другой имеют параметры по умолчанию, которых достаточно чтобы хотя бы как-то и куда-то что-то запихать.
0
|
|||||||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|||||||
| 20.01.2011, 16:01 | |||||||
|
Кроме того, это пример, написаный навскидку, за 5 минут. И с GBL. Если взять GroupLayout, то там такой эффект точно так же проявится. И даже заполнение поля не поможет. Вот, накидал в NetBeans:
0
|
|||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|||
| 20.01.2011, 18:17 | |||
как я вас понял: если включить компонент в менеджера, но не сказать какие размеры и положение, то он просто проигнорить компонент. я же утверждал, что при включении компонента без параметров он получить положение с текущими настройками или по умолчанию, а размер начальный (для JTextField это коварно 0, для JCheckBox нет)
0
|
|||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 21.01.2011, 14:37 | |
|
Суть спора, действительно, несколько ушла в сторону относительно изначального вопроса. Он было таким: добавили поле без описания ограничений. Что делать и кто виноват?
Ответ. Добавить с ограничениями, соответствующими используемому менеджеру раскладки. Почитать про некоторые из них можно тут: Я просто попытался описать, как такое может происходить. Что может - Вы видите сами. Пусть менеджер раскладки выставляет какие-то значения по умолчанию - мне лично это без разницы, ибо проблемы не решает - компонент не виден. И я утверждаю, что дело тут не в размерах, "коварно" установленных для компоненты, а в самом принципе. Для JCheckBox картина будет один в один, возьмите мой последний пример и замените на него добавляемый после initComponents JTextField, остальное можно оставить без изменений. Он точно так же будет расположен в точке 0,0 с размерами 0x0. И JButton будет вести себя так. И другие компоненты.
0
|
|
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
||
| 21.01.2011, 15:40 | ||
0
|
||
| 21.01.2011, 15:40 | |
|
Помогаю со студенческими работами здесь
11
Динамичное добавление и удаление компонента
Программное изменение Name компонента Edit
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|