Java Swing AbstractTableModel return column class

Description

Java Swing AbstractTableModel return column class

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();//  www .  j  a  v a  2  s.c o m
    f.setVisible(true);
  }

  public Main() {
    TableModel dataModel = new MyTableModel();
    JTable table = new JTable(dataModel);
    table.setAutoCreateRowSorter(true);
    table.getColumnModel().getColumn(0).setPreferredWidth(100);
    table.getColumnModel().getColumn(1).setPreferredWidth(150);
    table.getColumnModel().getColumn(2).setPreferredWidth(200);
    JScrollPane jsp = new JScrollPane(table);
    this.add(jsp);
  }

}

class MyTableModel extends AbstractTableModel {

  @Override
  public int getRowCount() {
    return 30;
  }

  @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