Java JTable get table column list
import java.util.ArrayList; import java.util.Enumeration; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; public class Main extends JPanel { public static void main(String[] args) { JFrame f = new JFrame("JTable"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new Main()); f.pack();// w w w. j a v a 2 s.com f.setVisible(true); } public Main() { TableModel dataModel = new MyTableModel(); JTable table = new JTable(dataModel); ArrayList<TableColumn> i = getTableColumns(table); JScrollPane jsp = new JScrollPane(table); this.add(jsp); } public static ArrayList<TableColumn> getTableColumns(JTable table) { ArrayList<TableColumn> list = new ArrayList<TableColumn>(); TableColumnModel model = table.getColumnModel(); Enumeration<TableColumn> enumeration = model.getColumns(); while (enumeration.hasMoreElements()) { TableColumn column = enumeration.nextElement(); list.add(column); } return list; } } class MyTableModel extends AbstractTableModel { @Override public int getRowCount() { return 30; } @Override public String getColumnName(int i) { return ""+i; } @Override public int getColumnCount() { return 3; } @Override public Object getValueAt(int row, int col) { return Math.pow(row, col + 1); } @Override public Class<?> getColumnClass(int col) { return getValueAt(0, col).getClass(); } }