
import java.awt.BorderLayout
import java.awt.Component
import javax.swing.DefaultCellEditor
import javax.swing.JCheckBox
import javax.swing.JFrame
import javax.swing.JPanel
import javax.swing.JScrollPane
import javax.swing.JTable
import javax.swing.table.DefaultTableModel
import javax.swing.table.TableCellRenderer
import javax.swing.table.TableColumnModel
@SuppressWarnings("serial")
public class TestJtable extends JPanel {
public TestJtable(){
init()
}
private void init() {
setLayout(new BorderLayout())
JScrollPane scrollPane = new JScrollPane(createTable())
add(scrollPane)
}
private JTable createTable() {
JTable table = new JTable()
String[] tableHeads = new String[]{"姓名","年龄","是否通过"}
DefaultTableModel dtm = (DefaultTableModel)table.getModel()
dtm.setColumnIdentifiers(tableHeads)
/*******添加的一些数据,也可以从数据库中提取数据*************/
dtm.addRow(new Object[]{"aa","12",new Boolean(true)})
dtm.addRow(new Object[]{"bb","34",new Boolean(false)})
dtm.addRow(new Object[]{"aa","12",new Boolean(false)})
dtm.addRow(new Object[]{"bb","34",new Boolean(false)})
dtm.addRow(new Object[]{"aa","12",new Boolean(false)})
dtm.addRow(new Object[]{"bb","34",new Boolean(false)})
dtm.addRow(new Object[]{"aa","12",new Boolean(false)})
dtm.addRow(new Object[]{"bb","34",new Boolean(false)})
dtm.addRow(new Object[]{"aa","12",new Boolean(false)})
dtm.addRow(new Object[]{"bb","34",new Boolean(false)})
dtm.addRow(new Object[]{"aa","12",new Boolean(false)})
dtm.addRow(new Object[]{"bb","34",new Boolean(false)})
dtm.addRow(new Object[]{"aa","12",new Boolean(false)})
dtm.addRow(new Object[]{"bb","34",new Boolean(false)})
/*****设置table的列模型****/
TableColumnModel tcm = table.getColumnModel()
tcm.getColumn(2).setCellEditor(new DefaultCellEditor(new JCheckBox()))
tcm.getColumn(2).setCellRenderer(new TestTableCellRenderer())
tcm.getColumn(2).setPreferredWidth(80)
tcm.getColumn(2).setWidth(80)
tcm.getColumn(2).setMaxWidth(80)
return table
}
public static void main(String[] args) {
JFrame jframe = new JFrame()
jframe.setBounds(300,100,300,200)
jframe.setTitle("测试")
jframe.add(new TestJtable())
jframe.setVisible(true)
}
class TestTableCellRenderer extends JCheckBox implements TableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
Boolean b = (Boolean) value
this.setSelected(b.booleanValue())
return this
}
}
}
一直没有时间给你说,不好意思。今天下午有点空。有什么不明白的。可以问我。
// 给你个示例代码int rows=myTable.getRowCount()
int ckxCol=0// 假设第一列是checkbox列
for(int r=0r<rowsr++){// 循环所有行
Object v=myTable.getValueAt(r,ckxCol)
if(v==null || ((Boolean)v).booleanValue()){
System.out.println("["+r+"]=flase")
}else{
System.out.println("["+r+"]=true")
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)