2012-05-03 4 views
4

現在、スクロールペイン内のすべてのパネル(JPanel)をリストするコンテナがあります。私が達成しようとしている機能はパネルを並べ替えることです。たとえば、2番目のパネルを最初のパネルに移動し、3番目のパネルを最後のスポットに移動します。現在、コンテナインデックスを使用してデータレイヤー内でそれらを移動することを考えています。スクロールペインのパネルの並べ替え

GUIフォームでの移動を表す良い方法はありますか?

私が持っている唯一のアイデアは、パネル上に上下の矢印を置いていることです。あなたが100以上のパネルを持っているときにはとても美しく見えません。

+0

ドラッグアンドドロップはどうですか? – GreyBeardedGeek

+0

こんにちは、私はDnDライブラリを調べましたが、あまりに自信がありません。私はあなたがパネルをドラッグアンドドロップできる例を見てきました。しかし、ほとんどの例はドラッグアンドドロップテキストです。 –

+0

'JPanel'の更新は頻繁に起こっていますか?もしそうでなければ 'ArrayList'を使って' JPanel'を格納し、 'JFrame'に移動先を知ったら再びそれらを追加することができます。 –

答えて

3

私はイベントに応答してcollectionJPanelのインスタンスを並べ替えるには、2つの一般的なアプローチを参照してください。

  • 変更順序を変更し、それらをすべて除去することにより、コンテナ内のパネルの実際順序を、囲みコンテナを検証して再描画する。このexampleJLabelインスタンスの基本的なアイデアを示しています。

  • 変更flyweight patterntabular rendererを使用してビュー内のパネルの明らか順序。このexampleは、CellRendererPaneを使用して基本的な考え方を示しています。