Как поставить компонент поверх других?

У меня есть JScrollPanel, который включает в себя большую панель, которая включает в себя 3 внутренние панели. Я хочу поместить панель (например) в специальное место, чтобы ее всегда можно было увидеть, я имею в виду, что пользователь может прокручивать ее куда угодно, но эта панель всегда находится поверх других компонентов и не перемещается. Я пытался сделать это через JLayeredPane, но не смог. как я могу это сделать?


person Soheil    schedule 03.02.2013    source источник


Ответы (3)


Пример JLayeredPane здесь, но OverlayLayout, увиденный здесь, может быть представляет интерес. Он не включен в обычную галерею.

OverlayLayout

Также рассмотрите этот пример, который рисует на панели прокрутки JViewport.

порт просмотра

person trashgod    schedule 03.02.2013

Вы могли бы использовать

Наложение содержимого поверх других компонентов на экране

person MadProgrammer    schedule 03.02.2013

Не могли бы вы просто поместить контент, который вы не хотите перемещать, в отдельную панель JPanel, которая не является панелью прокрутки? Я не вижу причин включать его в панель прокрутки, если вы не хотите, чтобы она прокручивалась.

Итак, есть одна большая панель (назовите ее bigPanel или что-то в этом роде), которая не прокручивается. Затем создайте панель, которую вы не хотите прокручивать в bigPanel. Затем также поместите панель прокрутки в bigPanel.

Возможно, я что-то упускаю, но разве это не решит вашу проблему?

person sage88    schedule 03.02.2013
comment
Причина, по которой я хочу поместить эту панель поверх других, заключается в функции этой панели, которая будет панелью уведомлений, которая иногда появляется поверх других вещей и через некоторое время исчезает. Другими словами, причина, по которой я хочу, чтобы поверх других, а не рядом с ними, относилась к дизайну моего графического интерфейса программы... - person Soheil; 03.02.2013
comment
Вы действительно хотите, чтобы он закрывал содержимое других панелей, или вы просто хотите, чтобы он появлялся над ними, а затем исчезал? И выше я имею в виду ось Y, а не ось Z. - person sage88; 03.02.2013