public void ensureTableFill() { Container p = getParent(); DefaultTableModel dataModel = (DefaultTableModel) dataTable.getModel(); if (dataTable.getHeight() < p.getHeight()) { int newRows = (p.getHeight() - dataTable.getHeight()) / dataTable.getRowHeight(); dataModel.setRowCount(dataTable.getRowCount() + newRows); for (int i = 0; i <= dataTable.getRowCount(); ++i) { if (rowHeader.getModel().getElementAt(i) != null) ((DefaultListModel) rowHeader.getModel()).add(i, true); } } }
public void setFont(Font font) { super.setFont(font); if (dataTable != null && dataTable.getRowCount() > 0 && dataTable.getColumnCount() > 0) { // set the font for each component dataTable.setFont(font); if (dataTable.getTableHeader() != null) dataTable.getTableHeader().setFont(font); rowHeader.setFont(font); // get row height needed to draw an "X" character int h = dataTable .getCellRenderer(0, 0) .getTableCellRendererComponent(dataTable, "X", false, false, 0, 0) .getPreferredSize() .height; // use this height to set the table and row header heights dataTable.setRowHeight(h); rowHeader.setFixedCellHeight(h); // set the column width int size = font.getSize(); if (size < 12) size = 12; // minimum size double multiplier = (size) / 12.0; preferredColumnWidth = (int) (SpreadsheetSettings.TABLE_CELL_WIDTH * multiplier); // columnHeader.setPreferredSize(new Dimension(preferredColumnWidth, // (int)(MyTable.TABLE_CELL_HEIGHT * multiplier))); // this.validate(); // dataTable.repaint(); } if (dataTable != null) dataTable.setPreferredScrollableViewportSize(dataTable.getPreferredSize()); }
/** Loads the data table. Called on data set changes. */ public void loadDataTable(ArrayList<GeoElement> dataArray) { // load the data model populateDataTable(dataArray); // prepare boolean selection list for the checkboxes selectionList = new Boolean[dataArray.size()]; for (int i = 0; i < dataArray.size(); ++i) { selectionList[i] = true; } // create a new header rowHeader = new MyRowHeader(this, dataTable); scrollPane.setRowHeaderView(rowHeader); updateFonts(getFont()); // repaint dataTable.repaint(); rowHeader.repaint(); }
public void actionPerformed(ActionEvent e) { if (e.getSource() == btnEnableAll) { rowHeader.enableAll(); btnEnableAll.setEnabled(false); } }