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

Susan Sarandon
リリース: 2024-11-09 01:13:02
オリジナル
308 人が閲覧しました

How to achieve non-continuous cell selection in a JTable?

JTable での非連続セルの選択

ユーザーが JTable で個々の不連続セルを選択できるようにすると、柔軟性と利便性が向上します。これを実現する方法は次のとおりです。

CTRL MOUSE_CLICK

最後に選択したセルを記憶せずに不連続なセル選択を有効にしたい場合は、Ctrl キーを押しながら目的のセルをクリックします。 。このメソッドを使用すると、デフォルトの JTable の動作を変更することなく、簡単かつ直接セルを選択できます。

ListSelectionModel の実装

あるいは、非連続セル選択をサポートするカスタム ListSelectionModel を実装することもできます。これは、最後に選択したセルを維持したり、カスタム選択ルールを実装したりするなど、選択プロセスに対して特定の制御が必要な場合に必要です。

次のコードは、カスタム ListSelectionModel を使用して非連続セルを選択する方法を示しています。 JTable:

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;

public class NonContinuousSelectionModel extends DefaultListSelectionModel {

    @Override
    public boolean isSelectedIndexSelected(int index) {
        boolean selected = super.isSelectedIndexSelected(index);
        if (selected) {
            return true;
        }
        int minIndex = getMinSelectionIndex();
        int maxIndex = getMaxSelectionIndex();
        if (minIndex == -1) {
            return false;
        }
        if (index < minIndex || index > maxIndex) {
            return false;
        }
        for (int i = minIndex; i <= maxIndex; i++) {
            if (i == index) {
                continue;
            }
            if (super.isSelectedIndexSelected(i)) {
                return false;
            }
        }
        return true;
    }
}
ログイン後にコピー

この ListSelectionModel を使用するには、setSelectionModel を使用して JTable に設定します。 method:

JTable table = new JTable(data, columnNames);
table.setSelectionModel(new NonContinuousSelectionModel());
ログイン後にコピー

このアプローチにより、セル選択プロセスのより高度なカスタマイズと制御が可能になり、デフォルトの JTable 動作ではサポートされない可能性のある複雑な選択シナリオが可能になります。

以上がJTable で非連続セル選択を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!