簡體   English   中英

JTable - Checkbox添加動作偵聽器

[英]JTable - Checkbox add action listener

我創建了一個簡單的JTable帶有如下復選框:

DefaultTableModel model = new DefaultTableModel();
jTable1.setModel(model);

model.addColumn("No:", no1);
model.addColumn("Remark", remark1);
model.addColumn("Color", colors1);
model.addColumn("Done");

TableColumn col1 = jTable1.getColumnModel().getColumn(0);
col1.setPreferredWidth(1);

TableColumn col4 = jTable1.getColumnModel().getColumn(3);
col4.setCellEditor(jTable1.getDefaultEditor(Boolean.class));
col4.setCellRenderer(jTable1.getDefaultRenderer(Boolean.class));
col4.setPreferredWidth(50);

jTable1.setShowGrid(true);
jTable1.setGridColor(Color.BLACK);
jTable1.setAutoCreateRowSorter(true); 

它工作正常,但如果我想為復選框添加動作監聽器該怎么辦。 例如,當我選中我的復選框時,我需要彈出一條確認消息。

例如,當我選中我的復選框時,我需要彈出一條確認消息。

您不需要向渲染器/編輯器添加ActionListener ,但您需要監聽表模型數據更改。 看看如何使用表格的 傾聽數據更改部分教程:

編輯

請注意,在這種情況下,當你使用布爾值時,有兩個可能的值來進行檢查。 但是,對於其他情況下的輸入驗證,所描述的過程將不起作用,因為當更改已經發生時將通知偵聽器,並且您將無法再將值設置回來因為它不再存在。

看看@ kleopatra對這個問題的回答: JTable輸入驗證器 如上所述,更好的方法是提供自定義CellEditor並在stopCellEditing()方法實現中進行驗證。 正如建議我使用DefaultCellEditor ,它將JCheckBox作為參數並覆蓋上述方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM