java中在jtable中加入了复选框,如何重置复选框
DefaultTableCellRendererdtm=newDefaultTableCellRenderer();//表格中加入复选框dtm.setHorizontal...
DefaultTableCellRenderer dtm = new DefaultTableCellRenderer();//表格中加入复选框
dtm.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
table.getColumnModel().getColumn(3).setCellRenderer(dtm);
table.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(checkbox));
table.getColumnModel().getColumn(3).setCellRenderer(new TestTableCellRenderer());
JScrollPane js=new JScrollPane(table);
if(e.getSource()==quxiao) //取消所有已选中的复选框 {
for(int i=0;i<a.length;i++)
;
} 展开
dtm.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
table.getColumnModel().getColumn(3).setCellRenderer(dtm);
table.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(checkbox));
table.getColumnModel().getColumn(3).setCellRenderer(new TestTableCellRenderer());
JScrollPane js=new JScrollPane(table);
if(e.getSource()==quxiao) //取消所有已选中的复选框 {
for(int i=0;i<a.length;i++)
;
} 展开
3个回答
展开全部
方法1.
实现
TableCellRenderer
TableCellEditor
Object[] row = .....
row[x] = new JCheckbox()
model.addRow(row);
方法2
继承DefaultTableModel
public class CheckTableModle extends DefaultTableModel {
重写
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
Object[] row = .....
row[x] = false
model.addRow(row);
上面两种方法都可以
实现
TableCellRenderer
TableCellEditor
Object[] row = .....
row[x] = new JCheckbox()
model.addRow(row);
方法2
继承DefaultTableModel
public class CheckTableModle extends DefaultTableModel {
重写
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
Object[] row = .....
row[x] = false
model.addRow(row);
上面两种方法都可以
更多追问追答
追问
可以写详细点吗
追答
好的,下午给一个demo
刚才也有些看走眼了,以为是你要放入复选框
现在看来你已经功能放入了,但不能控制,
也看了你的补充,是用第一种方法实现的。可以参考一下下边的代码。
for (int row = 0; row < table.getRowCount(); row++) {
JCheckBox check = ((JCheckBox) table.getValueAt(row, column));
}
--------------------------------------------------------------------------------------------------
public class Table extends JFrame {
private JTable table;
private DefaultTableModel model;
private JCheckBox chckbxAll = null;
public Table() {
getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(12, 41, 418, 215);
getContentPane().add(scrollPane);
model = new DefaultTableModel(new String[] { "1", "2", "3" }, 0);
table = new JTable(model);
scrollPane.setViewportView(table);
table.getColumnModel().getColumn(0).setCellEditor(new CellEditor());
table.getColumnModel().getColumn(0).setCellRenderer(new CellRenderer());
chckbxAll = new JCheckBox("all");
chckbxAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (int row = 0; row < table.getRowCount(); row++) {
JCheckBox check = (JCheckBox) table.getValueAt(row, 0);
check.setSelected(chckbxAll.isSelected());
}
table.updateUI();
}
});
chckbxAll.setBounds(12, 14, 103, 21);
getContentPane().add(chckbxAll);
for (int i = 0; i < 3; i++) {
Object[] row = { new JCheckBox(), "b", "c" };
model.addRow(row);
}
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(460, 300);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - getWidth()) / 2,
(screenSize.height - getHeight()) / 2);
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
new Table();
}
}
字不够了,
TableCellEditor
TableCellRenderer
的实现就不贴了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TableColumn aColumn = jTable1.getColumnModel().getColumn(0);
aColumn.setCellEditor(jTable1.getDefaultEditor(Boolean.class));
aColumn.setCellRenderer(jTable1.getDefaultRenderer(Boolean.class));
aColumn.setCellEditor(jTable1.getDefaultEditor(Boolean.class));
aColumn.setCellRenderer(jTable1.getDefaultRenderer(Boolean.class));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
document.getElementsByName("复选框的名字")
追问
不是,java中在jtable中加入了复选框,如何重置复选框,请看清楚一些
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询