Java Swing TableModel get column index by column name
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.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();//from w w w .j a v a2 s . c o m f.setVisible(true); } public Main() { TableModel dataModel = new MyTableModel(); JTable table = new JTable(dataModel); int i = getColumnIndexFromName(dataModel, "1"); System.out.println(i); JScrollPane jsp = new JScrollPane(table); this.add(jsp); } public static int getColumnIndexFromName(TableModel tableModel, String columnToRemove) { for (int columnIndex = 0; columnIndex < tableModel.getColumnCount(); columnIndex++) { if (tableModel.getColumnName(columnIndex).equals(columnToRemove)) { return columnIndex; } } return -1; } } 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(); } }