为表格列

时间:2018-06-10 20:31:31

标签: java swing jtable cell jcombobox

我在Java中创建JTable,我正在迭代一个名为methodtraces2的列表,对于第10,11,12和13列,我希望每个单元格都由{{{ 1}}。例如,第10列中的每个单元格都应包含一个组合框,组合框中的每一行应包含列表JComboBox中的一个条目,第10列中的每个单元格将根据{{1}的内容而有所不同},methodtrace.getCallersList()的每次迭代都不同。

我正在获取每个组合框的所有值并将它们存储在methodtrace.getCallersList()的数组中,该数组表示表的每一行的组合框的内容(methodtraces2的每次迭代) 。

  • String items1应在methodtraces2的每次迭代中填充items1
  • comboBox1应填充methodtraces2
  • items2应填充comboBox2
  • items3应填充comboBox3

我需要对第11,12和13列做同样的事情。

  • items4包含第11列的组合框的值
  • comboBox4包含第12列
  • 的组合框的值
  • items2包含第14列中每行的组合框值。

方法items3负责将组合框分配给适当的列,现在,我对第10列中的所有行都有相同的组合框内容输入。

items4

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解这里发生了什么,但是你提到你正在迭代一个名为 methodtraces2 的列表但是在你发布的代码中:

 for(Method2Representation caller: methodtrace (NOT methodtrace2!).getCallersList()) {
    items1[i]=caller.toString(); 
    System.out.println(caller.toString());
    i++; 

  }

你实际上正在迭代methodTrace(注意:不是methodTraces2)。调试这些问题时要尝试的另一件事是简化:

 for(Method2Representation caller: methodtrace.getCallersList()) {
    items1[i]=caller.toString(); 
    System.out.println(caller.toString());
    i++; 

  }

可以更改为:

 String stuff[] = {"1", "2", "3", .... "N"};
 for(String s : stuff) {
    items1[i]=s
    System.out.println("testing items1[" + i + "]: " + items[i]);
    i++; 
  }

最后一点,我希望你改变变量名来保护一些专有代码,因为那些变量名最终会让任何人疯狂!使用描述性变量名而不是items1,使用callers或items2使用callees。

HH:)