2010-08-27 5 views
0

Я работаю над приложением, которое при использовании для загрузки файла и рисования содержащихся в нем компонентов может привести к покраске перекрывающихся компонентов. Например, рассмотрим большой прямоугольник с текстовой строкой внутри него. Теперь, поскольку эти компоненты перекрываются, пользователю трудно выбрать внутреннее текстовое поле в этом случае, поскольку оно перекрывается прямоугольником.Обработка перекрывающихся компонентов в java swing

Мы решили решить это, разрешив пользователям фактически перемещать любой компонент на слой ниже текущего. Но у этого есть свои ограничения на сторону юзабилити, так как тогда для каждого такого случая пользователю придется переместить более крупный или последний окрашенный компонент на слой ниже, а затем сделать другую обработку на внутренних компонентах, таких как перетаскивание и т. Д. Там может быть более двух компонентов на той же 2d (x & y позиция) в этом приложении.

Я уверен, что для этого должно быть лучшее решение, и кто-то может предоставить некоторые указатели на его часть реализации.

ответ

1

Я не уверен, я понимаю ваш вопрос. У вас проблемы с слушателями действий или из-за рисования компонентов?

Возможно, это How to Use Root Panes.

Вы можете создать Glasspane в Java

alt text

alt text

0

Вот простой example из чертежа программы объекта, который поддерживает щелчок и перетаскивание для выбора нескольких. Более продвинутые программы часто реализуют функции z-order (Move Forward, Move Backward, Move to Front, Move to Back), просто переупорядочив список узлов.

В качестве альтернативы многоуровневому подходу, также рассмотрите JInternalFrame. Это example показывает How to Use Actions для управления меню, из которого скрытые окна могут быть выведены на передний план.

Смежные вопросы