ホームページ  >  記事  >  Java  >  JTable で非連続セル選択を有効にするにはどうすればよいですか?

JTable で非連続セル選択を有効にするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-12 11:49:01282ブラウズ

How Can I Enable Non-Continuous Cell Selection in a JTable?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。