JTable で非連続セルの選択を有効にする方法
標準の JTable 実装では、ユーザーは連続したセルのグループのみを選択できます。ただし、この動作をカスタマイズして個別の非連続セル選択を可能にする方法があります。
方法 1: CTRL 修飾子を使用する
JTable の選択モードの場合ListSelectionModel.SINGLE_SELECTION に設定されている場合、CTRL キーを押しながら非連続セルをクリックすると、それらのセルが選択されます。
方法 2: processMouseEvent メソッドのオーバーライド
選択動作をさらに制御するには、JTable サブクラスの processMouseEvent メソッドをオーバーライドできます。オーバーライドされたメソッドでは、修飾子を変更して、マウス イベントの処理中に CTRL キーが押されていることを JTable に認識させることができます。
コード スニペットの例を次に示します。
public class Ctrl_Down_JTable extends JTable { private static final long serialVersionUID = 1L; @Override protected void processMouseEvent(MouseEvent e) { int modifiers = e.getModifiers() | InputEvent.CTRL_MASK; int modifiersEx = e.getModifiersEx() | 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); } }
メソッド3: カスタム ListSelectionModel の使用
別のオプションは、カスタム ListSelectionModel を作成することです。不連続なセル選択をサポートする ListSelectionModel。これには、DefaultListSelectionModel クラスの拡張と、目的の機能を実装するための特定のメソッドのオーバーライドが含まれます。
注:
以上がJTable で非連続セル選択を有効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。