JTable での複数行選択
編集不可能なテキストとブール値のチェックボックスを含む JTable に直面した場合は、すべてのボックスのチェックを外すことが望ましいです。どれか 1 つがチェックされていない場合は選択中です。また、その逆も同様です。
容易にするためこの動作については、次の例を考えてください。
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) {...} }
この例では、SelectionAction はボタンのクリックを処理し、ユーザーの選択に基づいてチェックボックスを更新します。 dataModel は、チェックボックス列が編集可能であり、正しいタイプであることを保証します。
このアプローチを使用すると、JTable で複数行のチェックボックスの選択と同期を簡単に実装できます。
以上がJTable 内の複数行のチェックボックスの選択を同期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。