import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.util.Vector;
public class JTableDemo1 {
private final JFrame jFrame = new JFrame("简单表格 ");
Object[] title = {"姓名", "年龄", "性别"};
Object[][] data = {
{"李清照", 29, "男"}, {"苏格拉底", 56, "男"}, {"李白", 35, "男"}, {"弄玉", 18, "女"}, {"虎头", 2, "男"}
};
Vector titleV = new Vector();
Vector<Vector> dataV = new Vector<Vector>();
public void init() {
for (int i = 0; i < title.length; i++) {
titleV.add(title[i]);
}
for (int i = 0; i < data.length; i++) {
Vector temp = new Vector<>();
for (int j = 0; j < data[i].length; j++) {
temp.add(data[i][j]);
}
dataV.add(temp);
}
System.out.println();
JTable jTable = new JTable(new MyTable());
jFrame.add(new JScrollPane(jTable));
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.pack();
jFrame.setVisible(true);
}
private class MyTable extends AbstractTableModel {
@Override
public int getRowCount() {
return titleV.size();
}
@Override
public int getColumnCount() {
return dataV.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return dataV.get(rowIndex).get(columnIndex);
}
@Override
public String getColumnName(int column) {
return (String) titleV.get(column);
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
}
public static void main(String[] args) {
new JTableDemo1().init();
}
}
这都提醒具体哪行的问题了,数组越界就是超过了数组本身的长度。