ユーザーが JTable で個々の不連続セルを選択できるようにすると、柔軟性と利便性が向上します。これを実現する方法は次のとおりです。
最後に選択したセルを記憶せずに不連続なセル選択を有効にしたい場合は、Ctrl キーを押しながら目的のセルをクリックします。 。このメソッドを使用すると、デフォルトの JTable の動作を変更することなく、簡単かつ直接セルを選択できます。
あるいは、非連続セル選択をサポートするカスタム 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 サイトの他の関連記事を参照してください。