对如何以编程方式向 jtable 添加列感到困惑

Confused about how to add columns to jtable programmatically

我创建了一个 jtable 和一个扩展 AbstractTableModel 的 class。实际上我不确定到目前为止我是否正确。问题是我无法向我的 jtable 添加任何列。我在 main 方法中得到空指针。到目前为止,这是我尝试过的。能不能请你看看有什么遗漏和错误。

JPanel panel=new JPanel(new GridLayout(1,2,5,5)) ;
JTable table;
public CheckBoxes(){

    table=new JTable(new TableModels());
    TableColumnModel columnModel = null;
    for (int i = 0; i <2; i++) {
        columnModel.getColumn(i).setPreferredWidth(100);
    }
    panel.add(table);
    this.add(panel);

}
public static void main(String[] args) {
    new CheckBoxes().setVisible(true);
}
class TableModels extends AbstractTableModel{
    String[] colName=new String[]{"Name","Url"};
    int[][]data=new int[10][2];
    @Override
    public int getColumnCount() {
        // TODO Auto-generated method stub
        return colName.length;
    }

    @Override
    public int getRowCount() {
        // TODO Auto-generated method stub
        return data.length;
    }

    @Override
    public Object getValueAt(int row, int col) {
        // TODO Auto-generated method stub
        return data[row][col];
    }

改变

TableColumnModel columnModel = null;

TableColumnModel columnModel = table.getColumnModel();