Java 需要在JTable中动态添加JCheckBox

Java 需要在JTable中动态添加JCheckBox,java,swing,jtable,jcombobox,renderer,Java,Swing,Jtable,Jcombobox,Renderer,我有两个JTable。一个JTable中有一定数量的记录 加载第一个JTable后,我希望加载第二个表中创建的相同数量的JCheckbox 我有这个场景。。。vl在方法addCheckBox中传递两个表 private void addCheckBox(JTable procTableSrc, JTable procTableCk){ CheckBoxRenderer checkBoxRenderer = new CheckBoxRenderer(); EachRowRende

我有两个
JTable
。一个
JTable
中有一定数量的记录

加载第一个
JTable
后,我希望加载第二个表中创建的相同数量的
JCheckbox

我有这个场景。。。vl在方法
addCheckBox
中传递两个表

private void addCheckBox(JTable procTableSrc, JTable procTableCk){

    CheckBoxRenderer checkBoxRenderer = new CheckBoxRenderer();
    EachRowRenderer rowRenderer = new EachRowRenderer();
    int rows = procTableSrc.getRowCount();

    DefaultTableModel dm = (DefaultTableModel)procTableCk.getModel();

    Object [] data = new Object[][]{{new Boolean(false)},{new Boolean(false)}}; 

    for(int i=1; i <=rows; i++){
        rowRenderer.add(i, checkBoxRenderer);           
        //model.addRow(new Object []{new Boolean(false)});
    }
}
private void addCheckBox(JTable procTableSrc,JTable procTableCk){
CheckBoxRenderer CheckBoxRenderer=新的CheckBoxRenderer();
EachRowRenderer rowRenderer=新的EachRowRenderer();
int rows=procTableSrc.getRowCount();
DefaultTableModel dm=(DefaultTableModel)proctTableck.getModel();
对象[]数据=新对象[][{{new Boolean(false)},{new Boolean(false)};

对于(int i=1;i感谢您的编辑,但您可能仍希望向我们展示更多内容,并告诉我们您当前的代码导致了哪些错误

关于“CheckBoxRenderer”类,您不需要它。请阅读您可以找到的JTable教程。在那里,您将看到您需要做的只是覆盖表模型的
getColumnClass
方法,为感兴趣的列返回Boolean.class,以便显示复选框

运气

编辑1
还有,“行呈现器”有什么用途?要向JTable添加信息,必须向其模型中添加行,我看不到您的代码会这样做。请查看DefaultTableModel API,您将在其中看到addRow(…)方法,这可能会对您有很大帮助。或者使用数据数组创建一个新的DefaultTableModel对象。实际上,这可能更好,因为您可以重写其getColumnClass()方法,为需要显示复选框的列返回布尔值

编辑2
此外,由于您将其声明为一维数组并将其初始化为二维数组,因此无法编译此文件:

Object [] data = new Object[][]
考虑执行以下操作:

  • 创建一个对象的二维数组,让它保存模型的数据。数组的第一个索引是JTable中显示的行数,第二个索引是列数
  • 用布尔值填充每个列位置
  • 创建一个新的DefaultTableModel对象,该对象覆盖getColumnClass(…),并使其为包含布尔值且需要显示复选框的列返回Boolean.class
  • 给它一个构造函数,它允许你传入二维对象数组,也许还有一个列标题的字符串数组。构造函数的第一行应该是对超级构造函数的调用,你需要将数组参数传递给这个调用
  • 在procTableCk对象上调用setModel,该对象传入您刚刚创建的模型

您尚未提出具体且可回答的问题。您具体需要什么帮助?您尝试了什么?您遇到了什么问题?您可以向我们展示任何代码吗?告诉我们任何错误吗?请尽快解决这些问题,否则我担心您的问题将无法回答。您对可拆卸模型和每个渲染器都有问题,请无需为DefalutTableModel的CheckBoxRenderer定义。请参阅下面我的答案中的编辑1。请参阅下面我的答案中的编辑2。您的意思是,这是
EachRowRenderer
ASAP注释在编辑后删除,从问题中删除紧迫性和ASAP。