2012-03-07 11 views
0

私はDefaultListModelに取り組んでいます。選択した項目をリスト内の最初または最後の位置(上下ではない)に移動する必要があります。スワップせずに最初または最後の場所でDefaultListModelの選択したアイテムを移動するにはどうすればよいですか?DefaultListModelの要素の位置を変更する

+2

あなたは宿題タグを忘れましたか:-) – kleopatra

+0

アイテムを取り出して希望の位置に挿入しますか? – StanislavL

答えて

1

あなたが持っている問題は、「上」ボタンまたは「下」ボタンを押したときに項目が移動することですが、リストから削除してからもう一度追加したためですもはや選択されていない。リスト選択モデルは、「削除」イベントを処理し、選択された項目が削除されたため選択を消去します。

私はこの問題を解決するには、2つの方法で、洗練さの両方を知っている:あなたの「移動」アクションも同じ項目選択を維持するために選択モデルを更新しまし

  1. アイテムをリスト内に保持し、他のすべてのアイテムを移動してアイテムを移動します。リストが[1、2、3、4]で3を最初に移動したい場合は、最初に1と2を削除して[3、4]を取得し、インデックス1に戻して[3 、1,2,4]。 (これは、選択モデルが追加で選択したインデックスを更新しているという事実を使用し、イベントを削除)

それは少しより多くの仕事ですが、それは移動ロジックが対処することができますので、私は一般的に、(2)を使用しました選択モデルではなくリストモデルでのみ使用できます。

関連する問題