tablecolumn.java

来自「linux下建立JAVA虚拟机的源码KAFFE」· Java 代码 · 共 694 行 · 第 1/2 页

JAVA
694
字号
    changeSupport.firePropertyChange(CELL_RENDERER_PROPERTY, oldRenderer,                                      cellRenderer);  }  /**   * Returns the renderer for the table cells in this column.   *    * @return The cell renderer (possibly <code>null</code>).   *    * @see #setCellRenderer(TableCellRenderer)   */  public TableCellRenderer getCellRenderer()  {    return cellRenderer;  }  /**   * Sets the cell editor for the column and sends a {@link PropertyChangeEvent}   * (with the property name 'cellEditor') to all registered listeners.   *    * @param cellEditor the cell editor (<code>null</code> permitted).   *    * @see #getCellEditor()   */  public void setCellEditor(TableCellEditor cellEditor)  {    if (this.cellEditor != cellEditor)      {        TableCellEditor oldValue = this.cellEditor;        this.cellEditor = cellEditor;        changeSupport.firePropertyChange("cellEditor", oldValue, cellEditor);      }  }  /**   * Returns the cell editor for the column (the default value is    * <code>null</code>).   *    * @return The cell editor (possibly <code>null</code>).   *    * @see #setCellEditor(TableCellEditor)   */  public TableCellEditor getCellEditor()  {    return cellEditor;  }  /**   * Sets the width for the column and sends a {@link PropertyChangeEvent}    * (with the property name 'width') to all registered listeners.  If the new   * width falls outside the range getMinWidth() to getMaxWidth() it is    * adjusted to the appropriate boundary value.   *    * @param newWidth the width.   *    * @see #getWidth()   */  public void setWidth(int newWidth)  {    int	oldWidth = width;    if (newWidth < minWidth)      width = minWidth;    else if (newWidth > maxWidth)      width = maxWidth;    else      width = newWidth;    if (width == oldWidth)      return;    // We do have a constant field COLUMN_WIDTH_PROPERTY,    // however, tests show that the actual fired property name is 'width'    // and even Sun's API docs say that this constant field is obsolete and    // not used.    changeSupport.firePropertyChange("width", oldWidth, width);  }  /**   * Returns the width for the column (the default value is <code>75</code>).   *    * @return The width.   *   * @see #setWidth(int)   */  public int getWidth()  {    return width;  }  /**   * Sets the preferred width for the column and sends a    * {@link PropertyChangeEvent} (with the property name 'preferredWidth') to    * all registered listeners.  If necessary, the supplied value will be    * adjusted to fit in the range {@link #getMinWidth()} to    * {@link #getMaxWidth()}.   *    * @param preferredWidth  the preferred width.   *    * @see #getPreferredWidth()   */  public void setPreferredWidth(int preferredWidth)  {    int oldPrefWidth = this.preferredWidth;    if (preferredWidth < minWidth)      this.preferredWidth = minWidth;    else if (preferredWidth > maxWidth)      this.preferredWidth = maxWidth;    else      this.preferredWidth = preferredWidth;    changeSupport.firePropertyChange("preferredWidth", oldPrefWidth,                                      this.preferredWidth);  }  /**   * Returns the preferred width for the column (the default value is    * <code>75</code>).   *    * @return The preferred width.   *    * @see #setPreferredWidth(int)   */  public int getPreferredWidth()  {    return preferredWidth;  }  /**   * Sets the minimum width for the column and sends a    * {@link PropertyChangeEvent} (with the property name 'minWidth') to all   * registered listeners.  If the current <code>width</code> and/or    * <code>preferredWidth</code> are less than the new minimum width, they are   * adjusted accordingly.   *    * @param minWidth  the minimum width (negative values are treated as 0).   *    * @see #getMinWidth()   */  public void setMinWidth(int minWidth)  {    if (minWidth < 0)      minWidth = 0;    if (this.minWidth != minWidth)      {        if (width < minWidth)          setWidth(minWidth);        if (preferredWidth < minWidth)          setPreferredWidth(minWidth);        int oldValue = this.minWidth;        this.minWidth = minWidth;        changeSupport.firePropertyChange("minWidth", oldValue, minWidth);      }  }  /**   * Returns the <code>TableColumn</code>'s minimum width (the default value   * is <code>15</code>).   *    * @return The minimum width.   *    * @see #setMinWidth(int)   */  public int getMinWidth()  {    return minWidth;  }  /**   * Sets the maximum width for the column and sends a    * {@link PropertyChangeEvent} (with the property name 'maxWidth') to all   * registered listeners.  If the current <code>width</code> and/or    * <code>preferredWidth</code> are greater than the new maximum width, they    * are adjusted accordingly.   *    * @param maxWidth the maximum width.   *    * @see #getMaxWidth()   */  public void setMaxWidth(int maxWidth)  {    if (this.maxWidth != maxWidth)      {        if (width > maxWidth)          setWidth(maxWidth);        if (preferredWidth > maxWidth)          setPreferredWidth(maxWidth);        int oldValue = this.maxWidth;        this.maxWidth = maxWidth;        changeSupport.firePropertyChange("maxWidth", oldValue, maxWidth);       }  }  /**   * Returns the maximum width for the column (the default value is   * {@link Integer#MAX_VALUE}).   *    * @return The maximum width for the column.   *    * @see #setMaxWidth(int)   */  public int getMaxWidth()  {    return maxWidth;  }  /**   * Sets the flag that controls whether or not the column is resizable, and   * sends a {@link PropertyChangeEvent} (with the property name 'isResizable')   * to all registered listeners.   *    * @param isResizable <code>true</code> if this column is resizable,   * <code>false</code> otherwise.   *    * @see #getResizable()   */  public void setResizable(boolean isResizable)  {    if (this.isResizable != isResizable)      {        this.isResizable = isResizable;        changeSupport.firePropertyChange("isResizable", !this.isResizable,             isResizable);      }  }  /**   * Returns the flag that controls whether or not the column is resizable.   *    * @return <code>true</code> if this column is resizable,   * <code>false</code> otherwise.   *    * @see #setResizable(boolean)   */  public boolean getResizable()  {    return isResizable;  }  /**   * Sets the minimum, maximum, preferred and current width to match the   * minimum, maximum and preferred width of the header renderer component.   * If there is no header renderer component, this method does nothing.   */  public void sizeWidthToFit()  {    if (headerRenderer == null)      return;    Component c = headerRenderer.getTableCellRendererComponent(null,         getHeaderValue(), false, false, 0, 0);    Dimension min = c.getMinimumSize();    Dimension max = c.getMaximumSize();    Dimension pref = c.getPreferredSize();    setMinWidth(min.width);    setMaxWidth(max.width);    setPreferredWidth(pref.width);    setWidth(pref.width);  }  /**   * This method is empty, unused and deprecated.   * @deprecated 1.3   */  public void disableResizedPosting()  {    // Does nothing  }  /**   * This method is empty, unused and deprecated.   * @deprecated 1.3   */  public void enableResizedPosting()  {    // Does nothing  }  /**   * Adds a listener so that it receives {@link PropertyChangeEvent}    * notifications from this column.  The properties defined by the column are:   * <ul>   * <li><code>width</code> - see {@link #setWidth(int)};</li>   * <li><code>preferredWidth</code> - see {@link #setPreferredWidth(int)};</li>   * <li><code>minWidth</code> - see {@link #setMinWidth(int)};</li>    * <li><code>maxWidth</code> - see {@link #setMaxWidth(int)};</li>   * <li><code>modelIndex</code> - see {@link #setModelIndex(int)};</li>   * <li><code>isResizable</code> - see {@link #setResizable(boolean)};</li>   * <li><code>cellRenderer</code> - see    *   {@link #setCellRenderer(TableCellRenderer)};</li>   * <li><code>cellEditor</code> - see    *   {@link #setCellEditor(TableCellEditor)};</li>   * <li><code>headerRenderer</code> - see    *   {@link #setHeaderRenderer(TableCellRenderer)};</li>   * <li><code>headerValue</code> - see {@link #setHeaderValue(Object)};</li>   * <li><code>identifier</code> - see {@link #setIdentifier(Object)}.</li>   * </ul>   *    * @param listener the listener to add (<code>null</code> is ignored).   *    * @see #removePropertyChangeListener(PropertyChangeListener)   */  public synchronized void addPropertyChangeListener(      PropertyChangeListener listener)  {    changeSupport.addPropertyChangeListener(listener);  }  /**   * Removes a listener so that it no longer receives    * {@link PropertyChangeEvent} notifications from this column.  If    * <code>listener</code> is not registered with the column, or is    * <code>null</code>, this method does nothing.   *    * @param listener the listener to remove (<code>null</code> is ignored).   */  public synchronized void removePropertyChangeListener(      PropertyChangeListener listener)  {    changeSupport.removePropertyChangeListener(listener);  }  /**   * Returns the property change listeners for this <code>TableColumn</code>.   * An empty array is returned if there are currently no listeners registered.   *    * @return The property change listeners registered with this column.   *    * @since 1.4   */  public PropertyChangeListener[] getPropertyChangeListeners()  {    return changeSupport.getPropertyChangeListeners();  }  /**   * Creates and returns a default renderer for the column header (in this case,   * a new instance of {@link DefaultTableCellRenderer}).   *    * @return A default renderer for the column header.   */  protected TableCellRenderer createDefaultHeaderRenderer()  {    return new DefaultTableCellRenderer();  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?