Mehrere Zeilenauswahl in JTable
Wenn Sie mit einer JTable konfrontiert werden, die nicht bearbeitbaren Text und boolesche Kontrollkästchen enthält, ist es wünschenswert, alle Kontrollkästchen zu deaktivieren unter Auswahl, wenn einer von ihnen deaktiviert ist, und umgekehrt.
Um dieses Verhalten zu erleichtern, betrachten Sie das Beispiel unten:
import java.awt...; import javax.swing...; public class CheckABunch extends JPanel { // Constants and variables for data model and JTable setup private static final int CHECK_COL = 1; private static final Object[][] DATA = {...}; private static final String[] COLUMNS = {...}; private DataModel dataModel = ...; private JTable table = ...; private DefaultListSelectionModel selectionModel; // Constructor initializes the interface and selection model public CheckABunch() { super(new BorderLayout()); ... table.setPreferredScrollableViewportSize(...); selectionModel = ...; } // DataModel provides custom column classes and editability private class DataModel extends DefaultTableModel { public DataModel(Object[][] data, Object[] columnNames) {...} public Class<?> getColumnClass(int columnIndex) {...} public boolean isCellEditable(int row, int column) {...} } // ControlPanel contains buttons for selecting and clearing private class ControlPanel extends JPanel { public ControlPanel() {...} } private class SelectionAction extends AbstractAction { boolean value; public SelectionAction(String name, boolean value) {...} public void actionPerformed(ActionEvent e) {...} } // Main method for creating and displaying the interface public static void main(String[] args) {...} }
In diesem Beispiel verarbeitet SelectionAction die Schaltflächenklicks, um die Kontrollkästchen basierend auf der Auswahl des Benutzers zu aktualisieren. Das dataModel stellt sicher, dass die Kontrollkästchenspalte bearbeitet werden kann und vom richtigen Typ ist.
Mit diesem Ansatz können Sie problemlos die Auswahl und Synchronisierung mehrerer Kontrollkästchen für mehrere Zeilen in Ihrer JTable implementieren.
Das obige ist der detaillierte Inhalt vonWie synchronisiere ich die Auswahl mehrerer Zeilen-Kontrollkästchen in einer JTable?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!