Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/76: Рейтинг темы: голосов - 76, средняя оценка - 4.68
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101

Работа с компонентом jPanel

21.12.2009, 12:45. Показов 14962. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть несколько вопросов по работе с компонентом jPanel:
1) я добавил на mainPanel JPanel, выставил галочку возле autoscroll, изменил размер jPanel, теперь его размеры больше mainPanel, а линеек прокрутки нет - как быть.
2) как я уже писал выше, я изменяю размеры jPanel при помощи метода setSize(бла-бла, бла-бла), но при изменении размеров формы или её сворачивании, перемещении размер jPanel принимает значение по умолчанию (0, 0) - как быть.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2009, 12:45
Ответы с готовыми решениями:

Работа с Jpanel
Подскажите пожалуйста, как можно работать с двумя и более панелями на одном фрэйме? Создаю две панели кидаю на фрэйм, а вторая панель...

Работа с JPanel
Привет всем, и опять у меня вопрос=) Игрался я с Swing а именно с JPanel import java.awt.*; import java.swing.*; public class...

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

10
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
21.12.2009, 22:29
Советую писать ГУИ самому а не через ИДЕ в имя панели точка и там есть опция на автоскролл
0
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101
27.12.2009, 18:54  [ТС]
Спасибо за совет - буду писать всё ручками. Остался только один вопрос по JPanel и JScrollPane.
Добавляю JPanel на JScrollPane следующим образом:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
JFrame frame = new JFrame("Practice_Draw_Pen_JAVA");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
 
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(300, 300));
panel.setBackground(Color.WHITE);
 
JScrollPane jScrollPane = new JScrollPane(panel);
jScrollPane.setViewportBorder(new LineBorder(Color.RED));
jScrollPane.setAutoscrolls(true);
 
frame.add(jScrollPane);
Проблема в следующем: JPanel растягивается по всему компоненту JScrollPane - а мне это не нужно, потому что размеры JPanel я меняю динамически. Так вот, как сделать так, чтобы JPanel не растягивался по JScrollPane (как на рисунке 3); но при этом линейки прокрутки появлялись бы в случае если размер JPanel превышает размер JScrollPane (как на рисунке 4)?
Миниатюры
Работа с компонентом jPanel   Работа с компонентом jPanel  
0
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101
27.12.2009, 18:57  [ТС]
Рисунок 3 для наглядности немного подправил. Смотрите рисунок 5.
Миниатюры
Работа с компонентом jPanel  
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
28.12.2009, 00:28
попробуй или так или наоборот jScrollPane.add(panel); frame.add(jScrollPane);
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
JFrame frame = new JFrame("Practice_Draw_Pen_JAVA");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
 
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(300, 300));
panel.setBackground(Color.WHITE);
 
JScrollPane jScrollPane = new JScrollPane(panel);
jScrollPane.setViewportBorder(new LineBorder(Color.RED));
jScrollPane.setAutoscrolls(true);
 
panel.add(jScrollPane);
frame.add(panel);
0
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101
28.12.2009, 14:09  [ТС]
К сожалению не помогло. Вот что-то очень близкое к тому, что мне нужно получить - если размер JScrollPane меньше видимой области JPanel, то JScrollPane не растягивается по JPanel (рисунок 6). Добавляю JScrollPane на JPanel, но есть одна загвоздка - если сжимать форму(а вместе с ней сжимается и JPanel), то если размер JScrollPane больше размера видимой области, то линейки/полосы прокрутки на JPanel не появляются (рисунок 7). Как быть?
Так я добавляю JScrollPane на JPanel:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
JFrame frame = new JFrame("Practice_Draw_Pen_JAVA");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
 
JPanel panel = new JPanel();
panel.setBackground(Color.RED);
panel.setLayout(null);
panel.setAutoscrolls(true);
 
JScrollPane js = new JScrollPane();
js.setBounds(0, 0, 400, 400);
js.setViewportBorder(new LineBorder(Color.BLUE));
panel.add(js);
 
frame.add(panel);
Миниатюры
Работа с компонентом jPanel   Работа с компонентом jPanel  
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
28.12.2009, 15:14
jPanel не растягивается и не сжимается =))если честно не понимаю формулировку вопроса все путаеться в вашем обьяснении
0
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101
29.12.2009, 08:47  [ТС]
Необходимо каким-то образом закрепить JPanel на JScrollPane (или JScrollPane на JPanel) строго в левом-верхнем углу, чтобы при ресийзинге главного фрэйма (или ContentPane) этот JPanel (или JScrollPane) не перемещался к центру главного фрэйма (или ContentPane).
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
29.12.2009, 14:36
так судя по рисункам утебя там ничего никуда не перемещается
1
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101
29.12.2009, 15:27  [ТС]
lifestyle, спасибо, что пытался помочь. Наконец-то решение было найдено - на JScrollPane добавил JPanel1, а на JPanel1 добавил ещё JPanel2, при этом установив у JPanel1 setLayout(null), а у JPanel2 setBounds(). Работает как мне надо.
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
29.12.2009, 16:00
покажи хоть как стало работать интеренсо что я понять не мог)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2009, 16:00
Помогаю со студенческими работами здесь

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

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

Замена JPanel на JPanel в JFrame
У меня есть 3 класса. Первый класс Main наследуется от JFrame и в конструкторе установка размера и добавление JPanel второго класса....

JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Где ошибка?
JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Label label=new JLabel(' '); ...

Работа с компонентом DbEdit
Подскажите как можно запретить вводить пробелы точки, цифры и т. д. в общем все кроме букв при этом сделать так чтобы при вводе 1-й...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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