2012-05-03 3 views
4

В настоящее время у меня есть контейнер, чтобы перечислить все панели (JPanel) в панели прокрутки. Функция, которую я пытаюсь выполнить, пытается изменить порядок панелей. Например: перемещение второй панели в первую, а затем перемещение 3-й панели до последней точки. В настоящее время я думаю, используя индекс контейнеров и перемещая их в слой данных.Заменить панели в области прокрутки

Что представляет собой хороший способ представить перемещение в форме графического интерфейса?

Единственная идея, которую я имею, - это установить вверх и вниз стрелки на панели. Что не выглядит так красиво и очень грязно, когда у вас есть более 100 панелей.

+0

Как насчет Drag-and-Drop? – GreyBeardedGeek

+0

Привет, Грей, я искал библиотеки DnD, но я не слишком уверен. Я искал примеры, где вы можете перетаскивать панели. Но большинство примеров - это Drag and Drop Texts. –

+0

Является ли обновление JPanel слишком часто? если нет, вы можете использовать 'ArrayList' для хранения' JPanel' и затем добавить их снова к вашему 'JFrame', когда вы знаете, куда двигаться и где :-) –

ответ

3

Я вижу два основных подхода к изменить порядок collection из JPanel экземпляров в ответ на событие:

  • Изменение фактический порядок панелей в контейнере путем удаления всех их, изменяя порядок, проверка закрывающего контейнера и перекраска; это example показывает основную идею для JLabel экземпляров.

  • Изменение кажущейся порядка панелей в представлении с использованием flyweight pattern и tabular renderer; это example показывает основную идею, используя CellRendererPane.

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