JTable で非連続セルの選択を許可するにはどうすればよいですか?
個々の非連続的な JTable セルの選択を許可する
要件を理解する
このタスクは、ユーザーが複数の非連続セルを選択できるようにすることです。 JTable により、連続セルのグループを超えてより柔軟なセル選択が可能になります。
探索解決策
1. ListSelectionModel
の利用 JTable の setSelectionModel() メソッドを使用すると、選択モデルをカスタマイズできます。これを ListSelectionModel.SINGLE_SELECTION に設定し、InputEvent.CTRL_MASK を処理するリスナーを追加することで、不連続なセル選択を実装できます。
2. MouseEvent 処理のカスタマイズ
JTable の processMouseEvent() メソッドをオーバーライドすることで、コントロール キーが押されたことを示すようにイベントの修飾子を変更できます。このようにすると、テーブルはユーザーがコントロール キーを押し続けているかのように動作し、複数のセルを選択できるようになります。
3.カスタム リスト選択モデルの実装
組み込みの選択モデルが要件を満たさない場合は、必要な方法でセル選択を管理する独自の ListSelectionModel 実装を作成できます。
4.実装例
次のコード スニペットは、JTable で非連続セル選択を可能にするカスタム processMouseEvent() アプローチを示す SSCCE を提供します。
import java.awt.Component; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import javax.swing.*; public class TableSelection extends JFrame { public TableSelection() { JPanel main = new JPanel(); // Initialize table data String[] columnNames = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"}; Object[][] data = { {"Kathy", "Smith", "Snowboarding", new Integer(5), new Boolean(false)}, {"John", "Doe", "Rowing", new Integer(3), new Boolean(true)}, {"Sue", "Black", "Knitting", new Integer(2), new Boolean(false)}, {"Jane", "White", "Speed reading", new Integer(20), new Boolean(true)}, {"Joe", "Brown", "Pool", new Integer(10), new Boolean(false)} }; // Override processMouseEvent to add control modifier JTable table = new JTable(data, columnNames) { @Override protected void processMouseEvent(MouseEvent e) { int modifiers = e.getModifiers() | InputEvent.CTRL_MASK; MouseEvent myME = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), modifiers, e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton()); super.processMouseEvent(myME); } }; JScrollPane pane = new JScrollPane(table); main.add(pane); this.add(main); } public static void main(String[] args) { new TableSelection(); } }
この実装により、次のことが可能になります。 Ctrl キーを押しながら目的のセルをクリックして、隣接していないセルを選択します。
以上がJTable で非連続セルの選択を許可するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?
