我在NetBeans IDE中工作,语言Java,主要类是JFrameForm。
我有一个jTable 标签只有一行和一列,按钮和jTextField en ,其中type应该是整数。输入是变量 n 。
我需要使用 n 行和 n 列创建矩阵。所以矩阵的 n x n 维度为jTable。
点击按钮后,变量 n 将保存为维度,循环将开始添加列和行,直到 n 。
代码如下:
private void sendMouseClicked(java.awt.event.MouseEvent evt) {
DefaultTableModel model = (DefaultTableModel) tab.getModel();
String sn=en.getText();
int n=Integer.valueOf(sn);
for(int j=2;j<=n;j++){
model.addColumn(null); // I know this is wrong
model.addRow(new Object[]{test.getText()+j});
test.setText(test.getText()+j);
}
}
我收到了错误
线程中的异常&#34; AWT-EventQueue-0&#34; java.lang.ArrayIndexOutOfBoundsException:1
细胞应该是空的。
请帮我输入专栏。什么是对象?
答案 0 :(得分:1)
将列名设置为JTable,然后在JTable中添加行..
private void sendMouseClicked(java.awt.event.MouseEvent evt) {
String sn=en.getText();
int n=Integer.valueOf(sn);
java.util.Vector columns = new java.util.Vector();
columns.add("Your Column Name");
java.util.Vector rows = new java.util.Vector();
for(int j=2;j<=n;j++){
java.util.Vector row = new java.util.Vector();
row.add(test.getText()+j);
rows.add(row);
test.setText(test.getText()+j);
}
DefaultTableModel model = new DefaultTableModel(rows, columns);
tab.setModel(model);
}
这将有效..
答案 1 :(得分:0)
我认为(我没有检查过)你的JTable尝试添加一行,但由于你的addColumn(null)
而没有任何列。
为什么不用空字符串model.addColumn("");
添加空单元格?
答案 2 :(得分:0)
根据我的推断,您希望将变量decodeXhrResponse
用作int。 n
方法将值作为字符串返回,getText()
方法将字符串作为字符串返回。 valueOf()
用于所需的the exact opposite,例如将int转换为字符串。您应该使用this Stackoverflow question中概述的valueOf()
。这将有望摆脱出界的例外。