[英]how to set jcheckbox inside jtable dynamically
在此圖片中,返回表頭的值顯示在復選框中。
在這里jtable來自數據庫的值
我嘗試了它,但由於將布爾值強制轉換為字符串而發生了classcastexception
我不知道為什么會發生這個錯誤
這是我的代碼
static Object[][] data;
String[] colName = {"Book", "Member", "Issue Date", "Return Date ",
"Remark","Return" };
List<Issue>issues=ServiceFactory.getIssueServiceImpl().findAllIssue();
data=new Object[issues.size()][6];
for(Issue issue:issues){
data[i][0]=issue.getMemberId().getName();
data[i][1]=issue.getBookId().getName();
data[i][2]=issue.getIssueDate();
data[i][3]=issue.getReturnDate();
data[i][4]=issue.getRemark();
data[i][5]=issue.getStatus();
i++;
}
這里發生異常
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
switch (c) {
case 0: return Boolean.class;
default: return String.class;
}
} };
retunTable = new JTable();
retunTable.setModel(dtm);
retunTable.getTableHeader().setReorderingAllowed(false);
return retunTable;
如果您知道這一點,請在這里分享答案...
編輯
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
switch (c) {
case 0: return Boolean.class;
default: return String.class;
}
} };
dtm .addRow(data);
retunTable = new JTable();
retunTable.setModel(dtm);
retunTable.getTableHeader().setReorderingAllowed(false);
return retunTable;
從您的示例和代碼來看,這對我來說似乎是錯誤的...
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
switch (c) {
case 0: return Boolean.class;
default: return String.class;
}
}
};
第0
列不是“書”嗎?或更重要的是, issue.getMemberId().getName()
不應該...
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
return c == 5 ? Boolean.class : String.class
}
};
第5欄的“返回”在哪里?
您需要為JTable的單元格使用單元格編輯器。 您可以將DefaultCellEditor用於列,並使用將JTextField用作輸入參數的構造函數。
例如,如果表的第二列需要為文本字段,則可以執行以下操作:
TableColumn col2 = returnTable.getColumnModel().getColumn(1);
col2.setCellEditor(new DefaultCellEditor(new JTextField()));
有關詳細說明, 請參見Oracle表單元編輯器教程。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.