Java JTable get table column list

Description

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();
   }
}



PreviousNext

Related