Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 1
Регистрация: 11.04.2011
Сообщений: 121

JPanel инициализация размер

14.09.2013, 01:23. Показов 1727. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
В какой момент инициализируется размер панели? Логично ведь, создаем панель, добавляем на фрейм - инициализировалась. Но почему-то нет.
Конструктор фрэйма
Замечу, что панель пустая, цель - рисовать на ней

Java
1
2
3
4
5
6
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(300, 150, 480, 320);
        setVisible(true);
        myPanel = new JPanel();
        add(myPanel );
        System.out.println(myPanel.getWidth());   //->>>0
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.09.2013, 01:23
Ответы с готовыми решениями:

Как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel
Подскажите как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel, задание размеров при помощи setSize...

Нулевой размер JPanel
Доброго времени суток, возникла проблема, в интернете ничего не нашел, поэтому пишу сюда. Есть, JFrame у которого при нажатии на...

Как изменить размер JPanel на весь экран?
написал код на одном компе - все выглядит нормально.(1 фотка) открываю на другом компе - панель не на месте.(2 фотка) обыскал весь...

8
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
14.09.2013, 10:05
поставь setVisible(true); после строки add(бла-бла)
а потом уже можешь мерять ширину
1
3 / 3 / 1
Регистрация: 11.04.2011
Сообщений: 121
14.09.2013, 20:03  [ТС]
verylazy, а почему после а не до?
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
14.09.2013, 20:10
а почему до, а не после?
0
3 / 3 / 1
Регистрация: 11.04.2011
Сообщений: 121
14.09.2013, 21:20  [ТС]
verylazy, это был не риторический вопрос. Просто вдруг вы знаете
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
14.09.2013, 21:25
честно? не знаю и пока что знать особо не хочу, мне лень на это тратить время, не мне же это нужно
предполагаю, что это связано с тем что пока компонент не видим - его размеры компоновщик не просчитывает, мне кажется это логичным
0
3 / 3 / 1
Регистрация: 11.04.2011
Сообщений: 121
14.09.2013, 23:43  [ТС]
verylazy, добавляя на уже видимую фрэймину, должно же срабатывать.
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
15.09.2013, 19:15
если вызвать метод validate(); прямо там, в конструкторе главного окна, после добавления панели то размеры покажет правильные
public void validate()
Validates this container and all of its subcomponents.
Validating a container means laying out its subcomponents. Layout-related changes, such as setting the bounds of a component, or adding a component to the container, invalidate the container automatically. Note that the ancestors of the container may be invalidated also (see Component.invalidate() for details.) Therefore, to restore the validity of the hierarchy, the validate() method should be invoked on the top-most invalid container of the hierarchy.

Validating the container may be a quite time-consuming operation. For performance reasons a developer may postpone the validation of the hierarchy till a set of layout-related operations completes, e.g. after adding all the children to the container.

If this Container is not valid, this method invokes the validateTree method and marks this Container as valid. Otherwise, no action is performed.
полагаю в понедельник придет Skipy и потыкает всех носом в нужные места
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
16.09.2013, 10:35
Цитата Сообщение от mezlogo Посмотреть сообщение
verylazy, добавляя на уже видимую фрэймину, должно же срабатывать.
Вы документацию к методу add читали?

http://docs.oracle.com/javase/... Component)

If the container has already been displayed, the hierarchy must be validated thereafter in order to display the added component.
P.S. Они плохо написали в 7-й версии. В 6-й было более явно: http://docs.oracle.com/javase/... Component)

Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component.
Добавлено через 58 секунд
Цитата Сообщение от verylazy Посмотреть сообщение
честно? не знаю и пока что знать особо не хочу, мне лень на это тратить время, не мне же это нужно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2013, 10:35
Помогаю со студенческими работами здесь

Кнопки в JPanel не маштабируются под размер JFrame
Доброго времени суток, в теории вроде как кнопочки должны заполнить весь экран, но не заполняют, и можно как то обойтись без setSize в...

Сохранить размер компонента при добавлении в JPanel
Здравствуйте! У меня есть панель JPanel, у которой установлен менеджер компоновки TabelLayout. Туда я добавляю JComboBox, но он весь...

Как задать размер кнопки JButton на панели Jpanel
Имеется JFrame на котором распложены пара панелей. На панельках размещаются кнопки, окна. Вопрос в том, что не получается жестко задать...

Добавление JPanel на JPanel, не отображаются те, которые добавлены сверху
Здравствуйте. У меня есть панель fon на которой у меня картинка с фоном и 15 панелей на которых нарисованы шарики,пытаюсь добавить панели с...

Удаление JPanel кнопкой на этом же JPanel
Есть JPanel объекты, которые представляют собой панельки с какой - то информацией, на них есть кнопка. Как сделать так, чтобы при нажатии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru