Rambler's Top100

А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я

Все примеры | Примеры по пакетам

Таблица из модели пользователя


//Таблица из модели пользователя
//Модель таблицы создается из векторов
package jtable;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.util.Vector;
public class TableCustomModelDemo extends JPanel {
  private boolean DEBUG = true;
 Vector< Vector> rows = new Vector< Vector>();
 Vector row = new Vector();
 Vector columns = new Vector();
  public TableCustomModelDemo() {
    super(new GridLayout(1, 0));
        row.add( "a1" );
        row.add( "b1" );
        row.add( "c1" );
        rows.add( row );
        row = new Vector();
        row.add( "a2" );
        row.add( "b2" );
        row.add( "b3" );
        rows.add( row );
        columns.add ( "a" );
        columns.add ( "b" );
        columns.add ( "c" );
    JTable table = new JTable(new CustomTableModel());
    table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    JScrollPane scrollPane = new JScrollPane(table);
    add(scrollPane);
  }
  class CustomTableModel extends AbstractTableModel {
   
    public int getColumnCount() {
        return columns.size();
    }
    public int getRowCount() {
        return rows.size();
 
    }
    public String getColumnName(int col) {
        return columns.get(col).toString();
    }
    public Object getValueAt(int row, int col) {
         return rows.get(row).get(col);
    }
    public Class getColumnClass(int c) {
      return getValueAt(0, c).getClass();
    }
    public boolean isCellEditable(int row, int col) {
        return true;
    }
    public void setValueAt(Object value, int row, int col) {
      if (DEBUG) {
        System.out.println("Задание значения ячейки " + row + "," + col
            + " в " + value );
      }
    Vector row1 = new Vector();
    row1=rows.get(row);
    row1.remove(col);
    row1.add(col,value);
    rows.remove(row);
    rows.add(row,row1);
    fireTableCellUpdated(row, col);
      if (DEBUG) {
        System.out.println("Новые значения в таблице:");
        printDebugData();
      }
    }
    private void printDebugData() {
      int numRows = getRowCount();
      int numCols = getColumnCount();
      for (int i = 0; i <  numRows; i++) {
        System.out.print("    row " + i + ":");
        for (int j = 0; j <  numCols; j++) {
            System.out.print("  " +rows.get(i).get(j));
        }
        System.out.println();
      }
      System.out.println("--------------------------");
    }
  }
  private static void createAndShowGUI() {
    JFrame jframe = new JFrame("TableDemo");
    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    TableCustomModelDemo newContentPane = new TableCustomModelDemo();
    newContentPane.setOpaque(true); //content panes must be opaque
    jframe.setContentPane(newContentPane);
    jframe.pack();
    jframe.setVisible(true);
  }
  public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        createAndShowGUI();
      }
    });
  }
}

31.01.2009

Rambler's Top100


Ассоциативные ссылки