Java Code Examples for javax.swing.table.JTableHeader#setResizingColumn()
The following examples show how to use
javax.swing.table.JTableHeader#setResizingColumn() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ETableColumn.java From netbeans with Apache License 2.0 | 6 votes |
/** * Forces the table to resize given column. */ private void resize(int newWidth, JTable table) { int oldWidth = getWidth(); JTableHeader header = table.getTableHeader(); if (header == null) { return; } header.setResizingColumn(this); final int oldMin = getMinWidth(); final int oldMax = getMaxWidth(); setMinWidth(newWidth); setMaxWidth(newWidth); setWidth(newWidth); // The trick is to restore the original values // after the table has be layouted. During layout this column // has fixed width (by setting min==max==preffered) SwingUtilities.invokeLater(new Runnable() { @Override public void run() { setMinWidth(oldMin); setMaxWidth(oldMax); } }); Container container; if ((header.getParent() == null) || ((container = header.getParent().getParent()) == null) || !(container instanceof JScrollPane)) { header.setResizingColumn(null); return; } if (!container.getComponentOrientation().isLeftToRight() && ! header.getComponentOrientation().isLeftToRight()) { if (table != null) { JViewport viewport = ((JScrollPane)container).getViewport(); int viewportWidth = viewport.getWidth(); int diff = newWidth - oldWidth; int newHeaderWidth = table.getWidth() + diff; /* Resize a table */ Dimension tableSize = table.getSize(); tableSize.width += diff; table.setSize(tableSize); /* If this table is in AUTO_RESIZE_OFF mode and * has a horizontal scrollbar, we need to update * a view's position. */ if ((newHeaderWidth >= viewportWidth) && (table.getAutoResizeMode() == JTable.AUTO_RESIZE_OFF)) { Point p = viewport.getViewPosition(); p.x = Math.max(0, Math.min(newHeaderWidth - viewportWidth, p.x + diff)); viewport.setViewPosition(p); } } } header.setResizingColumn(null); }
Example 2
Source File: QueryPortBelongs.java From SimpleERP with Apache License 2.0 | 6 votes |
public static void FitTableColumns(JTable myTable){ JTableHeader header = myTable.getTableHeader(); int rowCount = myTable.getRowCount(); Enumeration columns = myTable.getColumnModel().getColumns(); while(columns.hasMoreElements()){ TableColumn column = (TableColumn)columns.nextElement(); int col = header.getColumnModel().getColumnIndex(column.getIdentifier()); int width = (int)myTable.getTableHeader().getDefaultRenderer() .getTableCellRendererComponent(myTable, column.getIdentifier() , false, false, -1, col).getPreferredSize().getWidth(); for(int row = 0; row<rowCount; row++){ int preferedWidth = (int)myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable, myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth(); width = Math.max(width, preferedWidth); } header.setResizingColumn(column); // ���к���Ҫ column.setWidth(width+myTable.getIntercellSpacing().width); } }
Example 3
Source File: QueryDailyIncome.java From SimpleERP with Apache License 2.0 | 6 votes |
public static void FitTableColumns(JTable myTable){ JTableHeader header = myTable.getTableHeader(); int rowCount = myTable.getRowCount(); Enumeration columns = myTable.getColumnModel().getColumns(); while(columns.hasMoreElements()){ TableColumn column = (TableColumn)columns.nextElement(); int col = header.getColumnModel().getColumnIndex(column.getIdentifier()); int width = (int)myTable.getTableHeader().getDefaultRenderer() .getTableCellRendererComponent(myTable, column.getIdentifier() , false, false, -1, col).getPreferredSize().getWidth(); for(int row = 0; row<rowCount; row++){ int preferedWidth = (int)myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable, myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth(); width = Math.max(width, preferedWidth); } header.setResizingColumn(column); // ���к���Ҫ column.setWidth(width+myTable.getIntercellSpacing().width); } }
Example 4
Source File: UpdateDestroy.java From SimpleERP with Apache License 2.0 | 6 votes |
public static void FitTableColumns(JTable myTable){ JTableHeader header = myTable.getTableHeader(); int rowCount = myTable.getRowCount(); Enumeration columns = myTable.getColumnModel().getColumns(); while(columns.hasMoreElements()){ TableColumn column = (TableColumn)columns.nextElement(); int col = header.getColumnModel().getColumnIndex(column.getIdentifier()); int width = (int)myTable.getTableHeader().getDefaultRenderer() .getTableCellRendererComponent(myTable, column.getIdentifier() , false, false, -1, col).getPreferredSize().getWidth(); for(int row = 0; row<rowCount; row++){ int preferedWidth = (int)myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable, myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth(); width = Math.max(width, preferedWidth); } header.setResizingColumn(column); // ���к���Ҫ column.setWidth(width+myTable.getIntercellSpacing().width); } }
Example 5
Source File: Utils.java From Method_Trace_Tool with Apache License 2.0 | 5 votes |
public static void fitTableColumns(JTable myTable) { JTableHeader header = myTable.getTableHeader(); int rowCount = myTable.getRowCount(); Enumeration columns = myTable.getColumnModel().getColumns(); while (columns.hasMoreElements()) { TableColumn column = (TableColumn) columns.nextElement(); int col = header.getColumnModel().getColumnIndex( column.getIdentifier()); int width = (int) myTable .getTableHeader() .getDefaultRenderer() .getTableCellRendererComponent(myTable, column.getIdentifier(), false, false, -1, col) .getPreferredSize().getWidth(); for (int row = 0; row < rowCount; row++) { int preferedWidth = (int) myTable .getCellRenderer(row, col) .getTableCellRendererComponent(myTable, myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth(); width = Math.max(width, preferedWidth); } header.setResizingColumn(column); // 此行很重要 column.setWidth(width + myTable.getIntercellSpacing().width + 4);// 使表格看起来不是那么拥挤,起到间隔作用 } }
Example 6
Source File: ExtendedJTable.java From rapidminer-studio with GNU Affero General Public License v3.0 | 5 votes |
public void unpack() { JTableHeader header = getTableHeader(); if (header != null) { for (int c = 0; c < getColumnCount(); c++) { TableColumn tableColumn = header.getColumnModel().getColumn(c); header.setResizingColumn(tableColumn); // this line is very important int width = DEFAULT_COLUMN_WIDTH; if (getWidth() / width > getColumnCount()) { width = getWidth() / getColumnCount(); } tableColumn.setWidth(width); } } }
Example 7
Source File: ExtendedJTableColumnFitMouseListener.java From rapidminer-studio with GNU Affero General Public License v3.0 | 4 votes |
@Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { JTableHeader header = (JTableHeader) e.getSource(); TableColumn tableColumn = getResizingColumn(header, e.getPoint()); if (tableColumn == null) { return; } JTable table = header.getTable(); if ((e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK) { if (table instanceof ExtendedJTable) { ((ExtendedJTable) table).pack(); e.consume(); } } else { int col = header.getColumnModel().getColumnIndex(tableColumn.getIdentifier()); int width = (int) header.getDefaultRenderer() .getTableCellRendererComponent(table, tableColumn.getIdentifier(), false, false, -1, col) .getPreferredSize().getWidth(); int firstRow = 0; int lastRow = table.getRowCount(); if (table instanceof ExtendedJTable) { ExtendedJScrollPane scrollPane = ((ExtendedJTable) table).getExtendedScrollPane(); if (scrollPane != null) { JViewport viewport = scrollPane.getViewport(); Rectangle viewRect = viewport.getViewRect(); if (viewport.getHeight() < table.getHeight()) { firstRow = table.rowAtPoint(new Point(0, viewRect.y)); firstRow = Math.max(0, firstRow); lastRow = table.rowAtPoint(new Point(0, viewRect.y + viewRect.height - 1)); lastRow = Math.min(lastRow, table.getRowCount()); } } } for (int row = firstRow; row < lastRow; row++) { int preferedWidth = (int) table.getCellRenderer(row, col) .getTableCellRendererComponent(table, table.getValueAt(row, col), false, false, row, col) .getPreferredSize().getWidth(); width = Math.max(width, preferedWidth); } header.setResizingColumn(tableColumn); // this line is very important tableColumn.setWidth(width + table.getIntercellSpacing().width); e.consume(); } } }
Example 8
Source File: ExtendedJTable.java From rapidminer-studio with GNU Affero General Public License v3.0 | 4 votes |
public void packColumn() { JTableHeader header = getTableHeader(); if (header != null) { int col = getSelectedColumn(); if (col >= 0) { TableColumn tableColumn = header.getColumnModel().getColumn(col); if (tableColumn != null) { int width = (int) header.getDefaultRenderer() .getTableCellRendererComponent(this, tableColumn.getIdentifier(), false, false, -1, col) .getPreferredSize().getWidth(); int firstRow = 0; int lastRow = getRowCount(); ExtendedJScrollPane scrollPane = getExtendedScrollPane(); if (scrollPane != null) { JViewport viewport = scrollPane.getViewport(); Rectangle viewRect = viewport.getViewRect(); if (viewport.getHeight() < getHeight()) { firstRow = rowAtPoint(new Point(0, viewRect.y)); firstRow = Math.max(0, firstRow); lastRow = rowAtPoint(new Point(0, viewRect.y + viewRect.height - 1)); lastRow = Math.min(lastRow, getRowCount()); } } for (int row = firstRow; row < lastRow; row++) { int preferedWidth = (int) getCellRenderer(row, col) .getTableCellRendererComponent(this, getValueAt(row, col), false, false, row, col) .getPreferredSize().getWidth(); width = Math.max(width, preferedWidth); } header.setResizingColumn(tableColumn); // this line is very important tableColumn.setWidth(width + getIntercellSpacing().width); } } } }