Я пытаюсь получить координаты компонента, например метку. Я попробовал getBounds и getLocation, однако они не дают точных координат, если метка находится на 2 или более панелях. Помимо getLocationOnScreen, есть ли способ получить точные координаты компонентов, даже если они находятся на более чем 1 панели?Как можно получить координаты компонентов Swing независимо от его родителя?
3
A
ответ
5
Если вы хотите его по отношению к фрейму, то вам придется сделать что-то вроде этого:
public static Point getPositionRelativeTo(Component root, Component comp) {
if (comp.equals(root)) { return new Point(0,0); }
Point pos = comp.getLocation();
Point parentOff = getPositionRelativeTo(root, comp.getParent());
return new Point(pos.x + parentOff.x, pos.y + parentOff.y);
}
Или вы можете просто использовать встроенный в решение SwingUtilities.convertPoint(comp, 0, 0, root)
.
3
Попробуйте компонент. getLocationOnScreen()
Как говорит Javadoc,
Получает расположение этого компонента в виде точки с указанием верхнего левого угла компонента в пространстве координат экрана.
3
В качестве альтернативы getLocationOnScreen()
, вы можете быть в состоянии использовать getXOnScreen()
и getYOnScreen()
из MouseEvent
. Zoom
- пример.
Смежные вопросы
- 1. Получить конкретные угловые координаты UIView/UIImageView независимо от его вращения
- 2. Получить координаты точки независимо от разрешения
- 3. Анимация ребенка независимо от родителя
- 4. Как центрировать группу компонентов в JPanel независимо от его размера
- 5. Как установить координаты для компонентов?
- 6. Селектор CSS для n-го элемента независимо от его родителя
- 7. Фиксирование дочернего div внутри его родителя, независимо от переполнения
- 8. Найти предыдущий элемент того же типа независимо от его родителя
- 9. Force DIV для обертывания текста, независимо от его родителя
- 10. RestKit извлекает вложенные ресурсы независимо от родителя
- 11. Получить ребенка от его родителя другого ребенка
- 12. Как получить уникальную строку из компонентов Swing?
- 13. Высота элемента Flexbox независимо от его содержимого
- 14. Можно ли отменить асинхронный вызов независимо от его текущего состояния?
- 15. Пропустить координаты экрана от кнопки до родителя
- 16. Как получить iBeacon его координаты?
- 17. Коснитесь компонентов AWT/Swing?
- 18. получить координаты событий касания относительно родителя
- 19. Как найти элемент независимо от его уровня?
- 20. получить локальный путь, независимо от того, как он его просматривал
- 21. Как считать события независимо от его случая?
- 22. Как получить координаты от Tweepy?
- 23. Изолирующий подзапрос от его родителя
- 24. Как использовать fork() для демонализации дочернего процесса независимо от его родителя?
- 25. Получить переменную от родителя
- 26. Как создать список компонентов, которые обновляются независимо от массива
- 27. Форматирование компонентов в Swing
- 28. Java Swing Абсолютные координаты
- 29. Наложение компонентов Swing
- 30. Расположение компонентов Java Swing
Как ярлык может быть на нескольких панелях? – trashgod
Я имею в виду, что у вас более одной панели, наложенной друг на друга, каждая из которых содержит свои компоненты, а метка не находится непосредственно на основной панели. – ict1991
А, вы имеете в виду более чем один (вложенный) «Контейнер». Что случилось с 'getLocationOnScreen()'? – trashgod