![](/img/trans.png)
[英]How do I get values of another cell if a checkbox is selected of the corresponding checkbox in jtable?
[英]How to get content of JTable if cell contains checkbox
我在Netbeans中創建了一個JTable,其第一列包含復選框。
這些復選框是通過添加
JCheckBox checkBox = new javax.swing.JCheckBox();
和
jTable1.getColumn("ColumnName").setCellEditor(new DefaultCellEditor(checkBox));
右鍵單擊JTable時在定制代碼下。 並且在Table Contents中,我將數據類型指定為Boolean (因為我之前從未使用過JTable,所以我基本上遵循了該網站上的說明: http : //forums.netbeans.org/topic9007.html )
我現在的問題是:例如,如何獲取row = 1和coloumn = 1中的實際復選框? 這些嘗試不起作用:
JCheckBox j = (JCheckBox) jTable1.getComponent(1);
JCheckBox j = (JCheckBox) jTable1.getModel().getValueAt(1, 1);
我收到錯誤消息“ java.lang.String無法轉換為javax.swing.JCheckBox” 。
對於我想做的事情,我需要找回類型為“復選框”的對象/組件,而不僅僅是找出是否被選中。 那有可能嗎? 我在編程方面不是很高級,所以這就是我遇到麻煩的原因。
編輯 :下面的舊答案被提醒,通過TableModel
直接獲取boolean
值比用JTable
UI搞砸更安全。
不要嘗試將任何內容JCheckBox
為JCheckBox
,而是遍歷Model
以獲得所需的值。
Component
列表包含在Object
定義的所有內容,因此您可能並不總是獲得所需的特定元素。
我建議遍歷Components
並使用instanceof
檢查它是否與JCheckBox
匹配。
for(Component c : jTable1.getComponents[]) {
if(c instanceof javax.swing.JCheckBox) {
// do the stuff
} else {
// don't do the stuff
}
}
甚至遍歷第一列中的Components
,都可能使事情變得更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.