Advertisement
Guest User

Table model

a guest
Jun 23rd, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. import java.util.Vector;
  2.  
  3. import javax.swing.table.AbstractTableModel;
  4.  
  5. public class InteractiveTableModel extends AbstractTableModel {
  6.  
  7. public static final int AUTHOR_INDEX = 0;
  8. public static final int TITLE_INDEX = 1;
  9. public static final int PRICE_INDEX = 2;
  10. public static final int IMAGE_INDEX = 3;
  11. public static final int HIDDEN_INDEX = 4;
  12.  
  13. protected String[] columnNames;
  14. protected Vector<Book> dataVector;
  15.  
  16. public InteractiveTableModel(String[] columnNames) {
  17. this.columnNames = columnNames;
  18. dataVector = new Vector<Book>();
  19. }
  20.  
  21. public String getColumnName(int column) {
  22. return columnNames[column];
  23. }
  24.  
  25. public boolean isCellEditable(int row, int column) {
  26. if (column == HIDDEN_INDEX) return false;
  27. else return true;
  28. }
  29.  
  30. public Class<?> getColumnClass(int column) {
  31. switch (column) {
  32. case AUTHOR_INDEX:
  33. case TITLE_INDEX:
  34. case IMAGE_INDEX:
  35. return String.class;
  36.  
  37. case PRICE_INDEX:
  38. return Double.class;
  39.  
  40. default:
  41. return Object.class;
  42. }
  43. }
  44.  
  45. @Override
  46. public int getColumnCount() {
  47. return columnNames.length;
  48. }
  49.  
  50. @Override
  51. public int getRowCount() {
  52. return dataVector.size();
  53. }
  54.  
  55. @Override
  56. public Object getValueAt(int row, int column) {
  57. Book book = dataVector.get(row);
  58. switch (column) {
  59. case AUTHOR_INDEX:
  60. return book.getAuthor();
  61. case TITLE_INDEX:
  62. return book.getTitle();
  63. case IMAGE_INDEX:
  64. return book.getImage();
  65. case PRICE_INDEX:
  66. return book.getPrice();
  67. default:
  68. return new Object();
  69. }
  70. }
  71.  
  72. public void setValueAt(Object value, int row, int column) {
  73. Book book = dataVector.get(row);
  74. switch (column) {
  75. case AUTHOR_INDEX:
  76. book.setAuthor((String)value);
  77. break;
  78. case TITLE_INDEX:
  79. book.setTitle((String)value);
  80. break;
  81. case IMAGE_INDEX:
  82. book.setImage((String)value);
  83. break;
  84. case PRICE_INDEX:
  85. book.setPrice((Double)value);
  86. break;
  87. default:
  88. System.out.println("invalid index");
  89. }
  90. fireTableCellUpdated(row, column);
  91. }
  92.  
  93. public boolean hasEmptyRow() {
  94. if (dataVector.size() == 0) return false;
  95. Book book = dataVector.get(dataVector.size() - 1);
  96. if (book.getAuthor().trim().equals("") &&
  97. book.getTitle().trim().equals("") &&
  98. book.getPrice() == 0)
  99. {
  100. return true;
  101. }
  102. else return false;
  103. }
  104.  
  105. public void addEmptyRow() {
  106. dataVector.add(new Book());
  107. fireTableRowsInserted(
  108. dataVector.size() - 1,
  109. dataVector.size() - 1);
  110. }
  111.  
  112. public void addRow(Book book) {
  113. dataVector.add(book);
  114. fireTableRowsInserted(
  115. dataVector.size() - 1,
  116. dataVector.size() - 1);
  117.  
  118. }
  119.  
  120. public void deleteRowAt(int index) {
  121. dataVector.remove(index);
  122. fireTableRowsDeleted(index, index);
  123. }
  124.  
  125. public void deleteAllRows() {
  126. dataVector.removeAllElements();
  127. addEmptyRow();
  128. fireTableRowsDeleted(0, getRowCount());
  129. }
  130.  
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement