|
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267
|
|
setLocationRelativeTo и getLocationOnScreen03.03.2011, 20:30. Показов 6532. Ответов 8
Метки нет (Все метки)
Пользуюсь методом setLocationRelativeTo со значением null чтобы переместить, окно jFrame в центр экрана. На JPanel отлавливаю событие клика мышью. Получаю координаты клика в системе координат с началом в углу монитора. Подскажите, как переместить начало системы координат для событий в левый верхний угол JPanel или хотя бы преобразовать координаты GetLocationOnScreen в координаты JPanel..
0
|
|
| 03.03.2011, 20:30 | |
|
Ответы с готовыми решениями:
8
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||
| 04.03.2011, 10:11 | ||
|
1
|
||
|
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267
|
|
| 04.03.2011, 12:26 [ТС] | |
|
Вот, на скрине видно.Получаю координаты клика с помощью getLocationOnScreen. setLocationRelativeTo(null) теперь уже убрал, чтобы разобраться. Кликаю в левый верхний угол JPanel(на скрине отметил красной точкой) и, ничего не делая с координатами, сразу по ним рисую маленький квадратик. Получаю смещение, по которому видно, что началом координат для getLocationOnScreen является угол монитора
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||
| 04.03.2011, 13:36 | ||
|
Разумеется, для getLocationOnScreen началом координат будет угол монитора, это следует из названия. А для getLocation началом будет левый верхний угол контейнера, в котором находится компонента. И для событий MouseEvent, если взять getX() и getY(), началом координат тоже будет угол компоненты, в которой эти события генерируются. И это прямо сказано в API(http://download.oracle.com/jav... tml#getX()):
1
|
||
|
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267
|
|
| 04.03.2011, 21:49 [ТС] | |
|
Спасибо, Skipy. Теперь всё работает как надо
Добавлено через 4 часа 35 минут Расплодил уже много тем, поэтому попробую спросить здесь. Посмотрите, на мой скрин, на нём бордер JPanel находится под фоновой заливкой. Как сделать, чтобы он был поверх фона?И ещё, как сделать так чтобы площадь залитого фона уменьшилась?Нужно что-то вроде внутреннего отступа для JPanel..
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 05.03.2011, 11:00 | |
|
Вообще-то так и должно быть. Рамка входит в компоненту. Я об этом писал вот тут: . Если Вы хотите сделать область рисования внутри рамки - делайте JPanel, устанавливайте на ней рамку, BorderLayout, а внутрь по центру добавляйте Вашу компоненту, на которой Вы рисуете. Или же можете отслеживать при рисовании размеры рамки, это есть в той же статье, даже пример кода есть.
1
|
|
|
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267
|
|
| 05.03.2011, 23:03 [ТС] | |
|
Благодарю)
Добавлено через 6 часов 12 минут Skipy, но ведь при BorderLayout() размеры дочернего компонента игнорируются и создать отступ от внешнего элемента не получается. Максимум что можно сделать - это пустой бордер на внешнем элементе. Или всё - таки можно как-то сделать отступ?
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 06.03.2011, 00:43 | |
|
Так. У Вас есть контейнер. В нем рамка. В нем установлен BorderLayout. И в центр контейнера добавлен один элемент. Так?
Менеджер компоновки принимает во внимание установленную рамку и раскладывает компоненты так, что она не перекрывается. Попробуйте сами, у меня сейчас под рукой среды разработки нет.
0
|
|
|
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267
|
|
| 06.03.2011, 15:59 [ТС] | |
|
У меня JFrame, в нём JPanel, в нём JLabel. JLabel не перекрывает рамку JPanel. Проблема в том, что я не могу расположить JLabel в центре JPanel , с отступами, чтобы JLabel не расползался по JPanel. Можно задать координаты JLabel вручную, но мне кажется, это не лучший вариант
0
|
|
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|