Die Möglichkeit für Benutzer, einzelne nicht-kontinuierliche Zellen in einer JTable auszuwählen, bietet mehr Flexibilität und Benutzerfreundlichkeit. So können Sie dies erreichen:
Wenn Sie die nicht kontinuierliche Zellenauswahl aktivieren möchten, ohne sich die zuletzt ausgewählte Zelle zu merken, halten Sie einfach die STRG-Taste gedrückt, während Sie auf die gewünschten Zellen klicken . Diese Methode ermöglicht eine einfache und direkte Zellenauswahl, ohne das Standardverhalten von JTable zu ändern.
Alternativ können Sie ein benutzerdefiniertes ListSelectionModel implementieren, das eine nicht kontinuierliche Zellenauswahl unterstützt. Dies ist erforderlich, wenn Sie eine spezifische Kontrolle über den Auswahlprozess benötigen, z. B. die Beibehaltung der zuletzt ausgewählten Zelle oder die Implementierung benutzerdefinierter Auswahlregeln.
Der folgende Code demonstriert die Verwendung eines benutzerdefinierten ListSelectionModel für die nicht kontinuierliche Zellenauswahl in a 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; } }
Um dieses ListSelectionModel zu verwenden, können Sie es mithilfe des setSelectionModel auf die JTable festlegen Methode:
JTable table = new JTable(data, columnNames); table.setSelectionModel(new NonContinuousSelectionModel());
Dieser Ansatz ermöglicht eine bessere Anpassung und Kontrolle über den Zellauswahlprozess und ermöglicht komplexe Auswahlszenarien, die möglicherweise nicht vom Standardverhalten von JTable unterstützt werden.
Das obige ist der detaillierte Inhalt vonWie erreicht man eine nicht kontinuierliche Zellenauswahl in einer JTable?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!