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 + -
显示快捷键?