Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.util.ArrayList;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JTable;
- import javax.swing.SwingConstants;
- import javax.swing.table.AbstractTableModel;
- public class TableModelTest extends JFrame {
- JPanel panel;
- JTable tbl;
- TableModelTest() {
- setTitle("Example");
- panel = new JPanel();
- tbl = new JTable();
- setLayout(new BorderLayout());
- panel.add(tbl, SwingConstants.CENTER);
- add(panel);
- setVisible(true);
- }
- public static void main(String[] args) {
- String[] colnames = {
- "String",
- "char",
- "int",
- "boolean",
- "long",
- "float",
- "double",
- "short",
- "byte"
- };
- Class<?>[] types = {
- String.class,
- char.class,
- int.class,
- boolean.class,
- long.class,
- float.class,
- double.class,
- short.class,
- byte.class
- };
- boolean[] isEditable = {
- true,
- true,
- true,
- true,
- true,
- true,
- true,
- true,
- true
- };
- String aString = "a string";
- char aChar = 'a';
- int anInt = 42;
- boolean aBool = true;
- long aLong = 100000L;
- float aFloat = 3.14F;
- double aDouble = 6.28D;
- short aShort = 2;
- byte aByte = 1;
- Object[] row1 = {
- aString,
- aChar,
- anInt,
- aBool,
- aLong,
- aFloat,
- aDouble,
- aShort,
- aByte
- };
- ArrayList<Object[]> data = new ArrayList<>();
- data.add(row1);
- TableModelTest tmt = new TableModelTest();
- tmt.tbl.setModel(new ExampleTableModel(colnames, data, types, isEditable));
- tmt.pack();
- }
- }
- class ExampleTableModel extends AbstractTableModel {
- String[] colnames;
- ArrayList<Object[]> data;
- Class<?>[] types;
- boolean[] isEditable;
- public ExampleTableModel(String[] colnames, ArrayList<Object[]> data, Class<?>[] types, boolean[] isEditable) {
- this.colnames = colnames;
- this.data = data;
- this.types = types;
- this.isEditable = isEditable;
- }
- @Override
- public int getColumnCount() {
- return this.colnames.length;
- }
- @Override
- public int getRowCount() {
- return this.data.size();
- }
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
- return this.data.get(rowIndex)[columnIndex];
- }
- @Override
- public Class<?> getColumnClass(int columnIndex) {
- return this.types[columnIndex];
- }
- @Override
- public String getColumnName(int column) {
- return this.colnames[column];
- }
- @Override
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- System.out.println("is column " + columnIndex + " editable? " + this.isEditable[columnIndex]);
- return this.isEditable[columnIndex];
- }
- @Override
- public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
- Object[] row = this.data.get(rowIndex);
- row[columnIndex] = aValue;
- this.data.set(rowIndex, row);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement