首頁 >Java >java教程 >如何在取消選取單一複選框後取消選取 JTable 中的所有選取複選框?

如何在取消選取單一複選框後取消選取 JTable 中的所有選取複選框?

Linda Hamilton
Linda Hamilton原創
2024-12-07 17:54:14313瀏覽

How to Uncheck All Selected Checkboxes in a JTable Upon Single Checkbox Uncheck?

JTable 中取消選取方塊的多行選擇

在具有不可編輯文字列和顯示布林值的複選框列的JTable 中,您可能會遇到以下情況:當取消選取一個複選框時,您希望取消選取所選的所有複選框。以下是實現此目的的方法:

提供的範例示範了一個圖形使用者介面,為簡單起見,該介面使用按鈕。但是,可以有效地為選單或彈出視窗實現 SelectionAction。

考慮以下步驟:

資料結構

  • 定義一個擴充 DefaultTableModel 的自訂 DataModel。
  • 重寫 getColumnClass 方法,指定複選框列為 Boolean類別。
  • 重寫 isCellEditable 方法以使複選框列可編輯。

選擇處理

  • 利用 DefaultListSelectionModel 管理行選擇。

複選框操作動作

  • 定義一個 SelectionAction 類,它會擴充 AbstractAction 來處理按鈕事件。
  • 將布林值傳遞給建構函式以指示所需的複選框狀態。
  • 當觸發操作,迭代選取的行,將每個選取的複選框值設為指定的布林值row。

整合

  • 將帶有按鈕的控制面板新增至主 JPanel。
  • 監聽按鈕點擊並執行SelectionAction 來管理複選框更新.

範例程式碼

//...
private class ControlPanel extends JPanel {
    public ControlPanel() {
        this.add(new JLabel("Selection:"));
        this.add(new JButton(new SelectionAction("Clear", false)));
        this.add(new JButton(new SelectionAction("Check", true)));
    }
}
//...

這個方法提供了一個全面的解決方案,用於處理JTable 中的多行選擇和複選框取消選取。

以上是如何在取消選取單一複選框後取消選取 JTable 中的所有選取複選框?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn