javax.swing.table.TableCellRenderer#getTableCellRendererComponent ( )源码实例Demo

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

源代码1 项目: darklaf   文件: DarkTableCellRendererDelegate.java
@Override
public Component getTableCellRendererComponent(final JTable table, final Object value,
                                               final boolean isSelected, final boolean hasFocus,
                                               final int row, final int column) {
    TableCellRenderer renderer = TableConstants.useBooleanEditorForValue(value, table)
            ? getBooleanRenderer(table)
            : super.getDelegate();
    Component component = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

    boolean isRowFocus = DarkTableCellFocusBorder.isRowFocusBorder(table);
    boolean isLeadSelectionCell = DarkUIUtil.hasFocus(table) && hasFocus && !isRowFocus;
    boolean paintSelected = isSelected && !isLeadSelectionCell && !table.isEditing();

    if (component instanceof JComponent) {
        setupBorderStyle(table, row, column, (JComponent) component, isRowFocus);
    }
    CellUtil.setupTableForeground(component, table, paintSelected);
    CellUtil.setupTableBackground(component, table, paintSelected, row);
    return component;
}
 
源代码2 项目: 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;
}
 
源代码3 项目: dragonwell8_jdk   文件: SwingUtilities2.java
/**
 * Returns true if the given point is outside the preferredSize of the
 * item at the given row of the table.  (Column must be 0).
 * Does not check the "Table.isFileList" property. That should be checked
 * before calling this method.
 * This is used to make WindowsL&F JFileChooser act like native dialogs.
 */
public static boolean pointOutsidePrefSize(JTable table, int row, int column, Point p) {
    if (table.convertColumnIndexToModel(column) != 0 || row == -1) {
        return true;
    }
    TableCellRenderer tcr = table.getCellRenderer(row, column);
    Object value = table.getValueAt(row, column);
    Component cell = tcr.getTableCellRendererComponent(table, value, false,
            false, row, column);
    Dimension itemSize = cell.getPreferredSize();
    Rectangle cellBounds = table.getCellRect(row, column, false);
    cellBounds.width = itemSize.width;
    cellBounds.height = itemSize.height;

    // See if coords are inside
    // ASSUME: mouse x,y will never be < cell's x,y
    assert (p.x >= cellBounds.x && p.y >= cellBounds.y);
    return p.x > cellBounds.x + cellBounds.width ||
            p.y > cellBounds.y + cellBounds.height;
}
 
源代码4 项目: ghidra   文件: CompositeGhidraTableCellRenderer.java
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {

	Object value = data.getValue();
	JTable table = data.getTable();
	int row = data.getRowViewIndex();
	int column = data.getColumnViewIndex();
	boolean isSelected = data.isSelected();
	boolean hasFocus = data.hasFocus();

	Component rendererComponent = null;
	TableCellRenderer cellRenderer = getCellRenderer(table, row, column);
	if (cellRenderer != null) {
		rendererComponent =
			cellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row,
				column);
	}
	else {
		// no defined renderer; use me
		rendererComponent =
			super.getTableCellRendererComponent(data);
	}

	return rendererComponent;
}
 
源代码5 项目: TencentKona-8   文件: SwingUtilities2.java
/**
 * Returns true if the given point is outside the preferredSize of the
 * item at the given row of the table.  (Column must be 0).
 * Does not check the "Table.isFileList" property. That should be checked
 * before calling this method.
 * This is used to make WindowsL&F JFileChooser act like native dialogs.
 */
public static boolean pointOutsidePrefSize(JTable table, int row, int column, Point p) {
    if (table.convertColumnIndexToModel(column) != 0 || row == -1) {
        return true;
    }
    TableCellRenderer tcr = table.getCellRenderer(row, column);
    Object value = table.getValueAt(row, column);
    Component cell = tcr.getTableCellRendererComponent(table, value, false,
            false, row, column);
    Dimension itemSize = cell.getPreferredSize();
    Rectangle cellBounds = table.getCellRect(row, column, false);
    cellBounds.width = itemSize.width;
    cellBounds.height = itemSize.height;

    // See if coords are inside
    // ASSUME: mouse x,y will never be < cell's x,y
    assert (p.x >= cellBounds.x && p.y >= cellBounds.y);
    return p.x > cellBounds.x + cellBounds.width ||
            p.y > cellBounds.y + cellBounds.height;
}
 
源代码6 项目: openjdk-jdk8u   文件: SwingUtilities2.java
/**
 * Returns true if the given point is outside the preferredSize of the
 * item at the given row of the table.  (Column must be 0).
 * Does not check the "Table.isFileList" property. That should be checked
 * before calling this method.
 * This is used to make WindowsL&F JFileChooser act like native dialogs.
 */
public static boolean pointOutsidePrefSize(JTable table, int row, int column, Point p) {
    if (table.convertColumnIndexToModel(column) != 0 || row == -1) {
        return true;
    }
    TableCellRenderer tcr = table.getCellRenderer(row, column);
    Object value = table.getValueAt(row, column);
    Component cell = tcr.getTableCellRendererComponent(table, value, false,
            false, row, column);
    Dimension itemSize = cell.getPreferredSize();
    Rectangle cellBounds = table.getCellRect(row, column, false);
    cellBounds.width = itemSize.width;
    cellBounds.height = itemSize.height;

    // See if coords are inside
    // ASSUME: mouse x,y will never be < cell's x,y
    assert (p.x >= cellBounds.x && p.y >= cellBounds.y);
    return p.x > cellBounds.x + cellBounds.width ||
            p.y > cellBounds.y + cellBounds.height;
}
 
源代码7 项目: 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);
}
 
源代码8 项目: netcdf-java   文件: ColumnWidthsResizer.java
public static int getCellWidth(JTable table, int rowViewIndex, int colViewIndex) {
  TableCellRenderer cellRenderer = table.getCellRenderer(rowViewIndex, colViewIndex);
  Object value = table.getValueAt(rowViewIndex, colViewIndex);

  Component cellRendererComp =
      cellRenderer.getTableCellRendererComponent(table, value, false, false, rowViewIndex, colViewIndex);
  return cellRendererComp.getPreferredSize().width;
}
 
源代码9 项目: FlatLaf   文件: FlatTableHeaderUI.java
@Override
public void paint( Graphics g, JComponent c ) {
	// do not paint borders if JTableHeader.setDefaultRenderer() was used
	TableCellRenderer defaultRenderer = header.getDefaultRenderer();
	boolean paintBorders = isSystemDefaultRenderer( defaultRenderer );
	if( !paintBorders && header.getColumnModel().getColumnCount() > 0 ) {
		// check whether the renderer delegates to the system default renderer
		Component rendererComponent = defaultRenderer.getTableCellRendererComponent(
			header.getTable(), "", false, false, -1, 0 );
		paintBorders = isSystemDefaultRenderer( rendererComponent );
	}

	if( paintBorders )
		paintColumnBorders( g, c );

	// temporary use own default renderer if necessary
	FlatTableCellHeaderRenderer sortIconRenderer = null;
	if( sortIconPosition != SwingConstants.RIGHT ) {
		sortIconRenderer = new FlatTableCellHeaderRenderer( header.getDefaultRenderer() );
		header.setDefaultRenderer( sortIconRenderer );
	}

	// paint header
	super.paint( g, c );

	// restore default renderer
	if( sortIconRenderer != null ) {
		sortIconRenderer.reset();
		header.setDefaultRenderer( sortIconRenderer.delegate );
	}

	if( paintBorders )
		paintDraggedColumnBorders( g, c );
}
 
源代码10 项目: mzmine3   文件: 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);
}
 
源代码11 项目: mzmine3   文件: GroupableTableHeaderUI.java
private void paintCell(Graphics g, Rectangle cellRect, ColumnGroup cGroup) {
  TableCellRenderer renderer = cGroup.getHeaderRenderer();
  Component component = renderer.getTableCellRendererComponent(header.getTable(),
      cGroup.getHeaderValue(), false, false, -1, -1);
  rendererPane.add(component);
  rendererPane.paintComponent(g, component, header, cellRect.x, cellRect.y, cellRect.width,
      cellRect.height, true);
}
 
源代码12 项目: dragonwell8_jdk   文件: bug7032791.java
public static void main(String[] args) throws Exception {

        UIManager.setLookAndFeel(new SynthLookAndFeel());

        Object value = "Test value";
        JTable table = new JTable(1, 1);
        TableCellRenderer renderer = table.getDefaultRenderer(Object.class);
        renderer.getTableCellRendererComponent(null, value, true, true, 0, 0);
        System.out.println("OK");
    }
 
源代码13 项目: TencentKona-8   文件: bug7032791.java
public static void main(String[] args) throws Exception {

        UIManager.setLookAndFeel(new SynthLookAndFeel());

        Object value = "Test value";
        JTable table = new JTable(1, 1);
        TableCellRenderer renderer = table.getDefaultRenderer(Object.class);
        renderer.getTableCellRendererComponent(null, value, true, true, 0, 0);
        System.out.println("OK");
    }
 
源代码14 项目: openjdk-jdk8u   文件: bug7032791.java
public static void main(String[] args) throws Exception {

        UIManager.setLookAndFeel(new SynthLookAndFeel());

        Object value = "Test value";
        JTable table = new JTable(1, 1);
        TableCellRenderer renderer = table.getDefaultRenderer(Object.class);
        renderer.getTableCellRendererComponent(null, value, true, true, 0, 0);
        System.out.println("OK");
    }
 
源代码15 项目: jdk8u60   文件: bug7032791.java
public static void main(String[] args) throws Exception {

        UIManager.setLookAndFeel(new SynthLookAndFeel());

        Object value = "Test value";
        JTable table = new JTable(1, 1);
        TableCellRenderer renderer = table.getDefaultRenderer(Object.class);
        renderer.getTableCellRendererComponent(null, value, true, true, 0, 0);
        System.out.println("OK");
    }
 
/**
 * This method picks good column sizes. If all column headers are wider than
 * the column's cells' contents, then just use column.sizeWidthToFit().
    * @param table  JTable
    */
public void initColumnSizes(JTable table) {

	TableColumn column;
	Component comp;
	int headerWidth;
	int cellWidth;

	TableCellRenderer headerRenderer = table.getTableHeader()
			.getDefaultRenderer();

	// TODO: move to tableModel. AK
	for (int i = 0; i < this.variationPerParameterTableModel.getColumnCount(); i++) {
		column = table.getColumnModel().getColumn(i);

		comp = headerRenderer.getTableCellRendererComponent(null, column
				.getHeaderValue(), false, false, 0, 0);
		headerWidth = comp.getPreferredSize().width;

		// /TODO: move to tableModel. AK
		comp = table.getDefaultRenderer(this.variationPerParameterTableModel.getColumnClass(i))
				.getTableCellRendererComponent(table, this.variationPerParameterTableModel.longValues[i], false,
						false, 0, i);
		cellWidth = comp.getPreferredSize().width;

		// XXX: Before Swing 1.1 Beta 2, use setMinWidth instead.
		column.setPreferredWidth(Math.max(headerWidth, cellWidth));
	}
}
 
源代码17 项目: OpenDA   文件: CorrelationTableController.java
/**
 * This method picks good column sizes. If all column headers are wider than
 * the column's cells' contents, then just use column.sizeWidthToFit().
    * @param table The correlation table
    */
public void initColumnSizes(JTable table) {

	TableColumn column;
	Component comp;
	int headerWidth;
	int cellWidth;

	TableCellRenderer headerRenderer = table.getTableHeader()
			.getDefaultRenderer();

	// TODO: move to tableModel. AK
	for (int i = 0; i < this.correlationTableModel.getColumnCount(); i++) {
		column = table.getColumnModel().getColumn(i);

		comp = headerRenderer.getTableCellRendererComponent(null, column
				.getHeaderValue(), false, false, 0, 0);
		headerWidth = comp.getPreferredSize().width;

		// /TODO: move to tableModel. AK
		comp = table.getDefaultRenderer(this.correlationTableModel.getColumnClass(i))
				.getTableCellRendererComponent(table, this.correlationTableModel.longValues[i], false,
						false, 0, i);
		cellWidth = comp.getPreferredSize().width;

		// XXX: Before Swing 1.1 Beta 2, use setMinWidth instead.
		column.setPreferredWidth(Math.max(headerWidth, cellWidth));
	}
}
 
源代码18 项目: 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);
}
 
源代码19 项目: OpenDA   文件: ResultsTableController.java
/**
 * This method picks good column sizes. If all column headers are wider than
 * the column's cells' contents, then just use column.sizeWidthToFit().
    * @param table Selected Results Table
    */
public void initColumnSizes(JTable table) {

	TableColumn column;
	Component comp;
	int headerWidth;
	int cellWidth;

	TableCellRenderer headerRenderer = table.getTableHeader()
			.getDefaultRenderer();

	// TODO: move to tableModel. AK
	for (int i = 0; i < this.resultsTableModel.getColumnCount(); i++) {
		column = table.getColumnModel().getColumn(i);

		comp = headerRenderer.getTableCellRendererComponent(null, column
				.getHeaderValue(), false, false, 0, 0);
		headerWidth = comp.getPreferredSize().width;

		// /TODO: move to tableModel. AK
		comp = table.getDefaultRenderer(this.resultsTableModel.getColumnClass(i))
				.getTableCellRendererComponent(table, this.resultsTableModel.longValues[i], false,
						false, 0, i);
		cellWidth = comp.getPreferredSize().width;

		// XXX: Before Swing 1.1 Beta 2, use setMinWidth instead.
		column.setPreferredWidth(Math.max(headerWidth, cellWidth));
	}
}
 
源代码20 项目: mzmine3   文件: PeakListTableWindow.java
/**
 * Methods for ActionListener interface implementation
 */
@Override
public void actionPerformed(ActionEvent event) {

  String command = event.getActionCommand();

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

    ExitCode exitCode = parameters.showSetupDialog(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(e);
    }
  }
}