私は取り組んでいDefaultListModelます。選択したアイテムをリストの最初または最後(上下ではない)の場所に移動する必要があります。選択したアイテムDefaultListModelをスワップせずに最初または最後の場所に移動するにはどうすればよいですか?
1 に答える
1
「上」または「下」ボタンを押すとアイテムが移動するという問題があると思いますが、リストから削除してから再度追加したため、選択されなくなりました。リスト選択モデルは、「削除」イベントを処理し、選択されたアイテムが削除されたため、その選択をクリアします。
私はこれを修正する2つの方法を知っています。どちらもエレガントではありません。
- 「移動」アクションで選択モデルを更新して、同じアイテムが選択されたままになるようにします。
- アイテムをリストに保持し、他のすべてのアイテムを移動して、アイテムを移動します。したがって、リストが[1、2、3、4]で、3を先頭に移動する場合は、最初に1と2を削除して[3、4]を取得し、次にそれらをインデックス1に追加して[3]を取得します。 、1、2、4]。(これは、選択モデルが追加および削除イベントで選択されたインデックスを更新するという事実を使用します)
私は一般的に(2)を使用しました。これは、少し手間がかかりますが、移動ロジックが選択モデルではなくリストモデルのみを処理できるようにするためです。
于 2012-03-07T13:42:46.370 に答える