Advertisement
Guest User

Untitled

a guest
Jul 8th, 2012
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.92 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.util.ArrayList;
  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. import javax.swing.JTable;
  6. import javax.swing.SwingConstants;
  7. import javax.swing.table.AbstractTableModel;
  8.  
  9. public class TableModelTest extends JFrame {
  10.  
  11.     JPanel panel;
  12.     JTable tbl;
  13.  
  14.     TableModelTest() {
  15.     setTitle("Example");
  16.     panel = new JPanel();
  17.     tbl = new JTable();
  18.     setLayout(new BorderLayout());
  19.     panel.add(tbl, SwingConstants.CENTER);
  20.     add(panel);
  21.     setVisible(true);
  22.     }
  23.  
  24.     public static void main(String[] args) {
  25.     String[] colnames = {
  26.         "String",
  27.         "char",
  28.         "int",
  29.         "boolean",
  30.         "long",
  31.         "float",
  32.         "double",
  33.         "short",
  34.         "byte"
  35.     };
  36.     Class<?>[] types = {
  37.         String.class,
  38.         char.class,
  39.         int.class,
  40.         boolean.class,
  41.         long.class,
  42.         float.class,
  43.         double.class,
  44.         short.class,
  45.         byte.class
  46.     };
  47.     boolean[] isEditable = {
  48.         true,
  49.         true,
  50.         true,
  51.         true,
  52.         true,
  53.         true,
  54.         true,
  55.         true,
  56.         true
  57.     };
  58.     String aString = "a string";
  59.     char aChar = 'a';
  60.     int anInt = 42;
  61.     boolean aBool = true;
  62.     long aLong = 100000L;
  63.     float aFloat = 3.14F;
  64.     double aDouble = 6.28D;
  65.     short aShort = 2;
  66.     byte aByte = 1;
  67.     Object[] row1 = {
  68.         aString,
  69.         aChar,
  70.         anInt,
  71.         aBool,
  72.         aLong,
  73.         aFloat,
  74.         aDouble,
  75.         aShort,
  76.         aByte
  77.     };
  78.     ArrayList<Object[]> data = new ArrayList<>();
  79.     data.add(row1);
  80.     TableModelTest tmt = new TableModelTest();
  81.     tmt.tbl.setModel(new ExampleTableModel(colnames, data, types, isEditable));
  82.     tmt.pack();
  83.     }
  84. }
  85.  
  86. class ExampleTableModel extends AbstractTableModel {
  87.  
  88.     String[] colnames;
  89.     ArrayList<Object[]> data;
  90.     Class<?>[] types;
  91.     boolean[] isEditable;
  92.  
  93.     public ExampleTableModel(String[] colnames, ArrayList<Object[]> data, Class<?>[] types, boolean[] isEditable) {
  94.         this.colnames = colnames;
  95.         this.data = data;
  96.         this.types = types;
  97.         this.isEditable = isEditable;
  98.     }
  99.  
  100.     @Override
  101.     public int getColumnCount() {
  102.         return this.colnames.length;
  103.     }
  104.  
  105.     @Override
  106.     public int getRowCount() {
  107.         return this.data.size();
  108.     }
  109.  
  110.     @Override
  111.     public Object getValueAt(int rowIndex, int columnIndex) {
  112.         return this.data.get(rowIndex)[columnIndex];
  113.     }
  114.  
  115.     @Override
  116.     public Class<?> getColumnClass(int columnIndex) {
  117.         return this.types[columnIndex];
  118.     }
  119.  
  120.     @Override
  121.     public String getColumnName(int column) {
  122.         return this.colnames[column];
  123.     }
  124.  
  125.     @Override
  126.     public boolean isCellEditable(int rowIndex, int columnIndex) {
  127.         System.out.println("is column " + columnIndex + " editable? " + this.isEditable[columnIndex]);
  128.         return this.isEditable[columnIndex];
  129.     }
  130.  
  131.     @Override
  132.     public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
  133.         Object[] row = this.data.get(rowIndex);
  134.         row[columnIndex] = aValue;
  135.         this.data.set(rowIndex, row);
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement