javax.swing.table.TableColumn#getHeaderRenderer ( )源码实例Demo

下面列出了javax.swing.table.TableColumn#getHeaderRenderer ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: netcdf-java   文件: TableAligner.java
/**
 * Installs alignment decorators in the table column at {@code colViewIndex}.
 *
 * @param table a table.
 * @param colViewIndex the index of the column in the table <i>view</i>.
 * @param alignment one of the following constants:
 *        <ul>
 *        <li>{@link SwingConstants#LEFT}</li>
 *        <li>{@link SwingConstants#CENTER} (the default for image-only labels)</li>
 *        <li>{@link SwingConstants#RIGHT}</li>
 *        <li>{@link SwingConstants#LEADING} (the default for text-only labels)</li>
 *        <li>{@link SwingConstants#TRAILING}</li>
 *        </ul>
 */
public static void installInOneColumn(JTable table, int colViewIndex, int alignment) {
  TableColumn tableColumn = table.getColumnModel().getColumn(colViewIndex);

  TableCellRenderer headerRenderer = tableColumn.getHeaderRenderer();
  if (headerRenderer == null) {
    headerRenderer = table.getTableHeader().getDefaultRenderer();
  }
  if (!(headerRenderer instanceof RendererAlignmentDecorator)) { // Don't install a redundant decorator.
    tableColumn.setHeaderRenderer(new RendererAlignmentDecorator(headerRenderer, alignment));
  }

  TableCellRenderer cellRenderer = tableColumn.getCellRenderer();
  if (cellRenderer == null) {
    cellRenderer = table.getDefaultRenderer(table.getColumnClass(colViewIndex));
  }
  if (!(cellRenderer instanceof RendererAlignmentDecorator)) { // Don't install a redundant decorator.
    tableColumn.setCellRenderer(new RendererAlignmentDecorator(cellRenderer, alignment));
  }
}
 
源代码2 项目: moa   文件: TaskTextViewerPanel.java
private void rescaleTableColumns() {
    // iterate over all columns to resize them individually
    TableColumnModel columnModel = previewTable.getColumnModel();
    for (int columnIdx = 0; columnIdx < columnModel.getColumnCount(); ++columnIdx) {
        // get the current column
        TableColumn column = columnModel.getColumn(columnIdx);
        // get the renderer for the column header to calculate the preferred
        // with for the header
        TableCellRenderer renderer = column.getHeaderRenderer();
        // check if the renderer is null
        if (renderer == null) {
            // if it is null use the default renderer for header
            renderer = previewTable.getTableHeader().getDefaultRenderer();
        }
        // create a cell to calculate its preferred size
        Component comp = renderer.getTableCellRendererComponent(previewTable, column.getHeaderValue(), false, false,
                0, columnIdx);
        int width = comp.getPreferredSize().width;
        // set the maximum width which was calculated
        column.setPreferredWidth(width);
    }
}
 
源代码3 项目: magarena   文件: TableColumnAdjuster.java
private int getColumnHeaderWidth(int column)
{
    if (! isColumnHeaderIncluded) return 0;

    TableColumn tableColumn = table.getColumnModel().getColumn(column);
    Object value = tableColumn.getHeaderValue();
    TableCellRenderer renderer = tableColumn.getHeaderRenderer();

    if (renderer == null)
    {
        renderer = table.getTableHeader().getDefaultRenderer();
    }

    Component c = renderer.getTableCellRendererComponent(table, value, false, false, -1, column);
    return c.getPreferredSize().width;
}
 
源代码4 项目: mzmine3   文件: GroupableTableHeaderUI.java
private int getHeaderHeight() {
  int height = 0;
  TableColumnModel columnModel = header.getColumnModel();
  for (int column = 0; column < columnModel.getColumnCount(); column++) {
    TableColumn aColumn = columnModel.getColumn(column);
    TableCellRenderer renderer = aColumn.getHeaderRenderer();
    if (renderer == null)
      renderer = header.getDefaultRenderer();
    Component comp = renderer.getTableCellRendererComponent(header.getTable(),
        aColumn.getHeaderValue(), false, false, -1, column);
    int cHeight = comp.getPreferredSize().height;
    Enumeration<?> en = ((GroupableTableHeader) header).getColumnGroups(aColumn);
    if (en != null) {
      while (en.hasMoreElements()) {
        ColumnGroup cGroup = (ColumnGroup) en.nextElement();
        cHeight += cGroup.getSize(header.getTable()).height;
      }
    }
    height = Math.max(height, cHeight);
  }
  return height;
}
 
源代码5 项目: netbeans   文件: UIUtilities.java
/**
 * Initializes preferred (and eventually maximum) width of a table column
 * based on the size of its header and the estimated longest value.
 *
 * @param table Table to adjust the column width for.
 * @param index Index of the column.
 * @param longValue Estimated long value for the column.
 * @param padding Number of pixes for padding.
 */
public static void initColumnWidth(JTable table, int index, Object longValue, int padding) {
    TableColumn column = table.getColumnModel().getColumn(index);

    // get preferred size of the header
    TableCellRenderer headerRenderer = column.getHeaderRenderer();
    if (headerRenderer == null) {
        headerRenderer = table.getTableHeader().getDefaultRenderer();
    }
    Component comp = headerRenderer.getTableCellRendererComponent(
            table, column.getHeaderValue(), false, false, 0, 0);
    int width = comp.getPreferredSize().width;

    // get preferred size of the long value (remeber max of the pref. size for header and long value)
    comp = table.getDefaultRenderer(table.getModel().getColumnClass(index)).getTableCellRendererComponent(
            table, longValue, false, false, 0, index);
    width = Math.max(width, comp.getPreferredSize().width) + 2 * padding;

    // set preferred width of the column
    column.setPreferredWidth(width);
    // if the column contains boolean values, the preferred width
    // should also be its max width
    if (longValue instanceof Boolean) {
        column.setMaxWidth(width);
    }
}
 
源代码6 项目: mzmine2   文件: GroupableTableHeaderUI.java
private int getHeaderHeight() {
  int height = 0;
  TableColumnModel columnModel = header.getColumnModel();
  for (int column = 0; column < columnModel.getColumnCount(); column++) {
    TableColumn aColumn = columnModel.getColumn(column);
    TableCellRenderer renderer = aColumn.getHeaderRenderer();
    if (renderer == null)
      renderer = header.getDefaultRenderer();
    Component comp = renderer.getTableCellRendererComponent(header.getTable(),
        aColumn.getHeaderValue(), false, false, -1, column);
    int cHeight = comp.getPreferredSize().height;
    Enumeration<?> en = ((GroupableTableHeader) header).getColumnGroups(aColumn);
    if (en != null) {
      while (en.hasMoreElements()) {
        ColumnGroup cGroup = (ColumnGroup) en.nextElement();
        cHeight += cGroup.getSize(header.getTable()).height;
      }
    }
    height = Math.max(height, cHeight);
  }
  return height;
}
 
源代码7 项目: keystore-explorer   文件: TableColumnAdjuster.java
private int getColumnHeaderWidth(int column) {
	if (!isColumnHeaderIncluded) {
		return 0;
	}

	TableColumn tableColumn = table.getColumnModel().getColumn(column);
	Object value = tableColumn.getHeaderValue();
	TableCellRenderer renderer = tableColumn.getHeaderRenderer();

	if (renderer == null) {
		renderer = table.getTableHeader().getDefaultRenderer();
	}

	Component c = renderer.getTableCellRendererComponent(table, value, false, false, -1, column);
	return c.getPreferredSize().width;
}
 
源代码8 项目: netcdf-java   文件: ColumnWidthsResizer.java
public static void resize(JTable table, int colViewIndex, boolean doFullScan) {
  int maxWidth = 0;

  // Get header width.
  TableColumn column = table.getColumnModel().getColumn(colViewIndex);
  TableCellRenderer headerRenderer = column.getHeaderRenderer();

  if (headerRenderer == null) {
    headerRenderer = table.getTableHeader().getDefaultRenderer();
  }

  Object headerValue = column.getHeaderValue();
  Component headerRendererComp =
      headerRenderer.getTableCellRendererComponent(table, headerValue, false, false, 0, colViewIndex);

  maxWidth = Math.max(maxWidth, headerRendererComp.getPreferredSize().width);


  // Get cell widths.
  if (doFullScan) {
    for (int row = 0; row < table.getRowCount(); ++row) {
      maxWidth = Math.max(maxWidth, getCellWidth(table, row, colViewIndex));
    }
  } else {
    maxWidth = Math.max(maxWidth, getCellWidth(table, 0, colViewIndex));
    maxWidth = Math.max(maxWidth, getCellWidth(table, table.getRowCount() / 2, colViewIndex));
    maxWidth = Math.max(maxWidth, getCellWidth(table, table.getRowCount() - 1, colViewIndex));
  }

  // For some reason, the calculation above gives a value that is 1 pixel too small.
  // Maybe that's because of the cell divider line?
  ++maxWidth;

  column.setPreferredWidth(maxWidth);
}
 
源代码9 项目: darklaf   文件: DarkTableHeaderUI.java
protected Component getHeaderCellRenderer(final int columnIndex) {
    TableColumn aColumn = header.getColumnModel().getColumn(columnIndex);
    TableCellRenderer renderer = aColumn.getHeaderRenderer();
    if (renderer == null) {
        renderer = header.getDefaultRenderer();
    }

    boolean hasFocus = !header.isPaintingForPrint() && header.hasFocus();
    rendererDelegate.setDelegate(renderer);
    return rendererDelegate.getTableCellRendererComponent(header.getTable(),
                                                          aColumn.getHeaderValue(),
                                                          false, hasFocus,
                                                          -1, columnIndex);
}
 
源代码10 项目: radiance   文件: SubstanceTableHeaderUI.java
/**
 * Retrieves renderer for the specified column header.
 * 
 * @param columnIndex
 *            Column index.
 * @return Renderer for the specified column header.
 */
private Component getHeaderRenderer(int columnIndex) {
    TableColumn aColumn = header.getColumnModel().getColumn(columnIndex);
    TableCellRenderer renderer = aColumn.getHeaderRenderer();
    if (renderer == null) {
        renderer = header.getDefaultRenderer();
    }
    return renderer.getTableCellRendererComponent(header.getTable(), aColumn.getHeaderValue(),
            false, false, -1, columnIndex);
}
 
源代码11 项目: radiance   文件: SubstanceTableHeaderUI.java
@Override
public void uninstallUI(JComponent c) {
    for (int i = 0; i < header.getColumnModel().getColumnCount(); i++) {
        TableColumn aColumn = header.getColumnModel().getColumn(i);
        TableCellRenderer renderer = aColumn.getHeaderRenderer();
        if (renderer == null) {
            renderer = header.getDefaultRenderer();
        }
        Component rendComp = renderer.getTableCellRendererComponent(header.getTable(),
                aColumn.getHeaderValue(), false, false, -1, i);
        SwingUtilities.updateComponentTreeUI(rendComp);
    }
    super.uninstallUI(c);
}
 
源代码12 项目: mzmine2   文件: GroupableTableHeaderUI.java
private void paintCell(Graphics g, Rectangle cellRect, int columnIndex) {
  TableColumn aColumn = header.getColumnModel().getColumn(columnIndex);
  TableCellRenderer renderer = aColumn.getHeaderRenderer();
  if (renderer == null)
    renderer = header.getDefaultRenderer();
  Component component = renderer.getTableCellRendererComponent(header.getTable(),
      aColumn.getHeaderValue(), false, false, -1, columnIndex);
  rendererPane.add(component);
  rendererPane.paintComponent(g, component, header, cellRect.x, cellRect.y, cellRect.width,
      cellRect.height, true);
}
 
源代码13 项目: ramus   文件: GroupableTableHeaderUI.java
/**
 * Calculate and return the height of the header.
 *
 * @return Header Height
 */
@SuppressWarnings("unchecked")
private int getHeaderHeight() {
    int height = 0;
    GroupableTableColumnModel columnModel = (GroupableTableColumnModel) header
            .getColumnModel();
    for (int column = 0; column < columnModel.getColumnCount(); column++) {
        TableColumn aColumn = columnModel.getColumn(column);
        TableCellRenderer renderer = aColumn.getHeaderRenderer();
        if (renderer == null) {
            renderer = header.getDefaultRenderer();
        }
        Component comp = renderer.getTableCellRendererComponent(header
                        .getTable(), aColumn.getHeaderValue(), false, false, -1,
                column);
        int cHeight = comp.getPreferredSize().height;
        Iterator iter = columnModel.getColumnGroups(aColumn);
        if (iter != null) {
            while (iter.hasNext()) {
                ColumnGroup cGroup = (ColumnGroup) iter.next();
                cHeight += cGroup.getSize(header.getTable()).height;
            }
        }
        height = Math.max(height, cHeight);
    }
    return height;
}
 
源代码14 项目: ganttproject   文件: UIUtil.java
public static Dimension getHeaderDimension(JTable table, TableColumn tableColumn) {
  TableCellRenderer renderer = tableColumn.getHeaderRenderer();
  if (renderer == null) {
    renderer = table.getTableHeader().getDefaultRenderer();
  }
  Component comp = renderer.getTableCellRendererComponent(table, tableColumn.getHeaderValue(), false, false, 0, 0);
  return comp.getPreferredSize();
}
 
public void copyValues(TableColumn base) {
	modelIndex = base.getModelIndex();
	identifier = base.getIdentifier();
	width = base.getWidth();
	minWidth = base.getMinWidth();
	setPreferredWidth(base.getPreferredWidth());
	maxWidth = base.getMaxWidth();
	headerRenderer = base.getHeaderRenderer();
	headerValue = base.getHeaderValue();
	cellRenderer = base.getCellRenderer();
	cellEditor = base.getCellEditor();
	isResizable = base.getResizable();
}
 
源代码16 项目: chipster   文件: EditableHeaderTableColumn.java
public void copyValues(TableColumn base) {    
	modelIndex     = base.getModelIndex();
	identifier     = base.getIdentifier();
	width          = base.getWidth();
	minWidth       = base.getMinWidth();
	setPreferredWidth(base.getPreferredWidth());
	maxWidth       = base.getMaxWidth();
	headerRenderer = base.getHeaderRenderer();
	headerValue    = base.getHeaderValue();
	cellRenderer   = base.getCellRenderer();
	cellEditor     = base.getCellEditor();
	isResizable    = base.getResizable();
}
 
源代码17 项目: jAudioGIT   文件: SortingTableModelDecorator.java
private int getRealPrefferedHeaderWidth(JTable t, int col) {
	TableColumn tc = t.getColumn(t.getColumnName(col));
	TableCellRenderer tcr = tc.getHeaderRenderer();
	if (tcr == null) {
		tcr = t.getTableHeader().getDefaultRenderer();
	}
	Component c = tcr.getTableCellRendererComponent(t, tc.getHeaderValue(),
			false, false, 0, 0);
	return c.getPreferredSize().width;
}
 
源代码18 项目: open-ig   文件: GUIUtils.java
/**
	 * Resizes the table columns based on the column and data preferred widths.
	 * @param table the original table
	 * @param model the data model
	 * @return the table itself
	 */
    public static JTable autoResizeColWidth(JTable table, AbstractTableModel model) {
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        table.setModel(model);
 
        int margin = 5;
 
        for (int i = 0; i < table.getColumnCount(); i++) {
            int                     vColIndex = i;
            DefaultTableColumnModel colModel  = (DefaultTableColumnModel) table.getColumnModel();
            TableColumn             col       = colModel.getColumn(vColIndex);
            int                     width;
 
            // Get width of column header
            TableCellRenderer renderer = col.getHeaderRenderer();
 
            if (renderer == null) {
                renderer = table.getTableHeader().getDefaultRenderer();
            }
 
            Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false, false, 0, 0);
 
            width = comp.getPreferredSize().width;
 
            // Get maximum width of column data
            for (int r = 0; r < table.getRowCount(); r++) {
                renderer = table.getCellRenderer(r, vColIndex);
                comp     = renderer.getTableCellRendererComponent(table, table.getValueAt(r, vColIndex), false, false,
                        r, vColIndex);
                width = Math.max(width, comp.getPreferredSize().width);
            }
 
            // Add margin
            width += 2 * margin;
 
            // Set the width
            col.setPreferredWidth(width);
        }
 
        ((DefaultTableCellRenderer) table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(
            SwingConstants.LEFT);
 
        // table.setAutoCreateRowSorter(true);
//        table.getTableHeader().setReorderingAllowed(false);
 
//        for (int i = 0; i < table.getColumnCount(); i++) {
//            TableColumn column = table.getColumnModel().getColumn(i);
// 
//            column.setCellRenderer(new DefaultTableColour());
//        }
 
        return table;
    }
 
源代码19 项目: open-ig   文件: AnimPlayList.java
/**
* Resizes the table columns based on the column and data preferred widths.
* @param table the original table
* @param model the data model
* @return the table itself
*/
  public static JTable autoResizeColWidth(JTable table, AbstractTableModel model) {
      table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
      table.setModel(model);
 
      int margin = 5;
 
      for (int i = 0; i < table.getColumnCount(); i++) {
          int                     vColIndex = i;
          DefaultTableColumnModel colModel  = (DefaultTableColumnModel) table.getColumnModel();
          TableColumn             col       = colModel.getColumn(vColIndex);
          int                     width;
 
          // Get width of column header
          TableCellRenderer renderer = col.getHeaderRenderer();
 
          if (renderer == null) {
              renderer = table.getTableHeader().getDefaultRenderer();
          }
 
          Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false, false, 0, 0);
 
          width = comp.getPreferredSize().width;
 
          // Get maximum width of column data
          for (int r = 0; r < table.getRowCount(); r++) {
              renderer = table.getCellRenderer(r, vColIndex);
              comp     = renderer.getTableCellRendererComponent(table, table.getValueAt(r, vColIndex), false, false,
                      r, vColIndex);
              width = Math.max(width, comp.getPreferredSize().width);
          }
 
          // Add margin
          width += 2 * margin;
 
          // Set the width
          col.setPreferredWidth(width);
      }
 
      ((DefaultTableCellRenderer) table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(
          SwingConstants.LEFT);
 
      return table;
  }
 
源代码20 项目: mzmine2   文件: PeakListTableWindow.java
/**
 * Methods for ActionListener interface implementation
 */
public void actionPerformed(ActionEvent event) {

  String command = event.getActionCommand();

  if (command.equals("PROPERTIES")) {

    ExitCode exitCode = parameters.showSetupDialog(this, true);
    if (exitCode == ExitCode.OK) {
      int rowHeight = parameters.getParameter(PeakListTableParameters.rowHeight).getValue();
      table.setRowHeight(rowHeight);

      PeakListTableColumnModel cm = (PeakListTableColumnModel) table.getColumnModel();
      cm.createColumns();

    }
  }

  if (command.equals("AUTOCOLUMNWIDTH")) {
    // Auto size column width based on data
    for (int column = 0; column < table.getColumnCount(); column++) {
      TableColumn tableColumn = table.getColumnModel().getColumn(column);
      if (tableColumn.getHeaderValue() != "Peak shape"
          && tableColumn.getHeaderValue() != "Status") {
        TableCellRenderer renderer = tableColumn.getHeaderRenderer();
        if (renderer == null) {
          renderer = table.getTableHeader().getDefaultRenderer();
        }
        Component component = renderer.getTableCellRendererComponent(table,
            tableColumn.getHeaderValue(), false, false, -1, column);
        int preferredWidth = component.getPreferredSize().width + 20;
        tableColumn.setPreferredWidth(preferredWidth);
      }
    }
  }

  if (command.equals("PRINT")) {
    try {
      table.print(PrintMode.FIT_WIDTH);
    } catch (PrinterException e) {
      MZmineCore.getDesktop().displayException(this, e);
    }
  }
}