⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basicsliderui.java

📁 java1.6众多例子参考
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
     * @return true if all the labels from the label table have the     *         same baseline     * @since 1.6     */    protected boolean labelsHaveSameBaselines() {        if (!checkedLabelBaselines) {            checkedLabelBaselines = true;            Dictionary dictionary = slider.getLabelTable();            if (dictionary != null) {                sameLabelBaselines = true;                Enumeration elements = dictionary.elements();                int baseline = -1;                while (elements.hasMoreElements()) {                    Component label = (Component)elements.nextElement();                    Dimension pref = label.getPreferredSize();                    int labelBaseline = label.getBaseline(pref.width,                                                          pref.height);                    if (labelBaseline >= 0) {                        if (baseline == -1) {                            baseline = labelBaseline;                        }                        else if (baseline != labelBaseline) {                            sameLabelBaselines = false;                            break;                        }                    }                    else {                        sameLabelBaselines = false;                        break;                    }                }            }            else {                sameLabelBaselines = false;            }        }        return sameLabelBaselines;    }    public Dimension getPreferredHorizontalSize() {        Dimension horizDim = (Dimension)DefaultLookup.get(slider,                this, "Slider.horizontalSize");        if (horizDim == null) {            horizDim = new Dimension(200, 21);        }        return horizDim;    }    public Dimension getPreferredVerticalSize() {        Dimension vertDim = (Dimension)DefaultLookup.get(slider,                this, "Slider.verticalSize");        if (vertDim == null) {            vertDim = new Dimension(21, 200);        }        return vertDim;    }    public Dimension getMinimumHorizontalSize() {        Dimension minHorizDim = (Dimension)DefaultLookup.get(slider,                this, "Slider.minimumHorizontalSize");        if (minHorizDim == null) {            minHorizDim = new Dimension(36, 21);        }        return minHorizDim;    }    public Dimension getMinimumVerticalSize() {        Dimension minVertDim = (Dimension)DefaultLookup.get(slider,                this, "Slider.minimumVerticalSize");        if (minVertDim == null) {            minVertDim = new Dimension(21, 36);        }        return minVertDim;    }    public Dimension getPreferredSize(JComponent c)    {        recalculateIfInsetsChanged();        Dimension d;        if ( slider.getOrientation() == JSlider.VERTICAL ) {            d = new Dimension(getPreferredVerticalSize());	    d.width = insetCache.left + insetCache.right;	    d.width += focusInsets.left + focusInsets.right;	    d.width += trackRect.width + tickRect.width + labelRect.width;        }        else {            d = new Dimension(getPreferredHorizontalSize());	    d.height = insetCache.top + insetCache.bottom;	    d.height += focusInsets.top + focusInsets.bottom;	    d.height += trackRect.height + tickRect.height + labelRect.height;        }        return d;    }    public Dimension getMinimumSize(JComponent c)  {        recalculateIfInsetsChanged();        Dimension d;        if ( slider.getOrientation() == JSlider.VERTICAL ) {            d = new Dimension(getMinimumVerticalSize());	    d.width = insetCache.left + insetCache.right;	    d.width += focusInsets.left + focusInsets.right;	    d.width += trackRect.width + tickRect.width + labelRect.width;        }        else {            d = new Dimension(getMinimumHorizontalSize());	    d.height = insetCache.top + insetCache.bottom;	    d.height += focusInsets.top + focusInsets.bottom;	    d.height += trackRect.height + tickRect.height + labelRect.height;        }        return d;    }    public Dimension getMaximumSize(JComponent c) {        Dimension d = getPreferredSize(c);        if ( slider.getOrientation() == JSlider.VERTICAL ) {            d.height = Short.MAX_VALUE;        }        else {            d.width = Short.MAX_VALUE;        }        return d;    }    protected void calculateGeometry() {        calculateFocusRect();        calculateContentRect(); 	calculateThumbSize();	calculateTrackBuffer();	calculateTrackRect();	calculateTickRect();	calculateLabelRect();	calculateThumbLocation();    }      protected void calculateFocusRect() {        focusRect.x = insetCache.left;	focusRect.y = insetCache.top;	focusRect.width = slider.getWidth() - (insetCache.left + insetCache.right);	focusRect.height = slider.getHeight() - (insetCache.top + insetCache.bottom);    }      protected void calculateThumbSize() {	Dimension size = getThumbSize();	thumbRect.setSize( size.width, size.height );    }      protected void calculateContentRect() {        contentRect.x = focusRect.x + focusInsets.left;        contentRect.y = focusRect.y + focusInsets.top;        contentRect.width = focusRect.width - (focusInsets.left + focusInsets.right);        contentRect.height = focusRect.height - (focusInsets.top + focusInsets.bottom);    }    protected void calculateThumbLocation() {        if ( slider.getSnapToTicks() ) {	    int sliderValue = slider.getValue();	    int snappedValue = sliderValue; 	    int majorTickSpacing = slider.getMajorTickSpacing();	    int minorTickSpacing = slider.getMinorTickSpacing();	    int tickSpacing = 0;	    	    if ( minorTickSpacing > 0 ) {	        tickSpacing = minorTickSpacing;	    }	    else if ( majorTickSpacing > 0 ) {	        tickSpacing = majorTickSpacing;	    }	    if ( tickSpacing != 0 ) {	        // If it's not on a tick, change the value	        if ( (sliderValue - slider.getMinimum()) % tickSpacing != 0 ) {		    float temp = (float)(sliderValue - slider.getMinimum()) / (float)tickSpacing;		    int whichTick = Math.round( temp );		    snappedValue = slider.getMinimum() + (whichTick * tickSpacing);		}				if( snappedValue != sliderValue ) { 		    slider.setValue( snappedValue );		}	    }	}	        if ( slider.getOrientation() == JSlider.HORIZONTAL ) {            int valuePosition = xPositionForValue(slider.getValue());	    thumbRect.x = valuePosition - (thumbRect.width / 2);	    thumbRect.y = trackRect.y;        }        else {            int valuePosition = yPositionForValue(slider.getValue());	    	    thumbRect.x = trackRect.x;	    thumbRect.y = valuePosition - (thumbRect.height / 2);        }    }    protected void calculateTrackBuffer() {        if ( slider.getPaintLabels() && slider.getLabelTable()  != null ) {            Component highLabel = getHighestValueLabel();            Component lowLabel = getLowestValueLabel();            if ( slider.getOrientation() == JSlider.HORIZONTAL ) {                trackBuffer = Math.max( highLabel.getBounds().width, lowLabel.getBounds().width ) / 2;                trackBuffer = Math.max( trackBuffer, thumbRect.width / 2 );            }            else {                trackBuffer = Math.max( highLabel.getBounds().height, lowLabel.getBounds().height ) / 2;                trackBuffer = Math.max( trackBuffer, thumbRect.height / 2 );            }        }        else {            if ( slider.getOrientation() == JSlider.HORIZONTAL ) {                trackBuffer = thumbRect.width / 2;            }            else {                trackBuffer = thumbRect.height / 2;            }        }    }      protected void calculateTrackRect() {	int centerSpacing = 0; // used to center sliders added using BorderLayout.CENTER (bug 4275631)        if ( slider.getOrientation() == JSlider.HORIZONTAL ) {	    centerSpacing = thumbRect.height;	    if ( slider.getPaintTicks() ) centerSpacing += getTickLength();	    if ( slider.getPaintLabels() ) centerSpacing += getHeightOfTallestLabel();	    trackRect.x = contentRect.x + trackBuffer;	    trackRect.y = contentRect.y + (contentRect.height - centerSpacing - 1)/2;	    trackRect.width = contentRect.width - (trackBuffer * 2);	    trackRect.height = thumbRect.height;	}	else {	    centerSpacing = thumbRect.width;	    if (BasicGraphicsUtils.isLeftToRight(slider)) {		if ( slider.getPaintTicks() ) centerSpacing += getTickLength();	    	if ( slider.getPaintLabels() ) centerSpacing += getWidthOfWidestLabel();	    } else {	        if ( slider.getPaintTicks() ) centerSpacing -= getTickLength();	    	if ( slider.getPaintLabels() ) centerSpacing -= getWidthOfWidestLabel();	    }	    trackRect.x = contentRect.x + (contentRect.width - centerSpacing - 1)/2;	    trackRect.y = contentRect.y + trackBuffer;	    trackRect.width = thumbRect.width;	    trackRect.height = contentRect.height - (trackBuffer * 2);	}    }    /**     * Gets the height of the tick area for horizontal sliders and the width of the     * tick area for vertical sliders.  BasicSliderUI uses the returned value to     * determine the tick area rectangle.  If you want to give your ticks some room,     * make this larger than you need and paint your ticks away from the sides in paintTicks().     */    protected int getTickLength() {        return 8;    }    protected void calculateTickRect() {	if ( slider.getOrientation() == JSlider.HORIZONTAL ) {	    tickRect.x = trackRect.x;	    tickRect.y = trackRect.y + trackRect.height;	    tickRect.width = trackRect.width;	    tickRect.height = (slider.getPaintTicks()) ? getTickLength() : 0;	}	else {	    tickRect.width = (slider.getPaintTicks()) ? getTickLength() : 0;	    if(BasicGraphicsUtils.isLeftToRight(slider)) {	        tickRect.x = trackRect.x + trackRect.width;	    }	    else {	        tickRect.x = trackRect.x - tickRect.width;	    }	    tickRect.y = trackRect.y;	    tickRect.height = trackRect.height;	}    }    protected void calculateLabelRect() {        if ( slider.getPaintLabels() ) {	    if ( slider.getOrientation() == JSlider.HORIZONTAL ) {	        labelRect.x = tickRect.x - trackBuffer;		labelRect.y = tickRect.y + tickRect.height;		labelRect.width = tickRect.width + (trackBuffer * 2);                labelRect.height = getHeightOfTallestLabel();            }            else {	        if(BasicGraphicsUtils.isLeftToRight(slider)) {		    labelRect.x = tickRect.x + tickRect.width;		    labelRect.width = getWidthOfWidestLabel();		}		else {		    labelRect.width = getWidthOfWidestLabel();		    labelRect.x = tickRect.x - labelRect.width;		}		labelRect.y = tickRect.y - trackBuffer;		labelRect.height = tickRect.height + (trackBuffer * 2);            }        }        else {            if ( slider.getOrientation() == JSlider.HORIZONTAL ) {	        labelRect.x = tickRect.x;		labelRect.y = tickRect.y + tickRect.height;		labelRect.width = tickRect.width;		labelRect.height = 0;            }            else {	        if(BasicGraphicsUtils.isLeftToRight(slider)) {		    labelRect.x = tickRect.x + tickRect.width;		}		else {		    labelRect.x = tickRect.x;		}		labelRect.y = tickRect.y;		labelRect.width = 0;		labelRect.height = tickRect.height;            }        }    }    protected Dimension getThumbSize() {        Dimension size = new Dimension();        if ( slider.getOrientation() == JSlider.VERTICAL ) {	    size.width = 20;	    size.height = 11;	}	else {	    size.width = 11;	    size.height = 20;	}	return size;    }    public class PropertyChangeHandler implements PropertyChangeListener {        // NOTE: This class exists only for backward compatability. All        // its functionality has been moved into Handler. If you need to add        // new functionality add it to the Handler, but make sure this              // class calls into the Handler.        public void propertyChange( PropertyChangeEvent e ) {            getHandler().propertyChange(e);        }    }    protected int getWidthOfWidestLabel() {        Dictionary dictionary = slider.getLabelTable();        int widest = 0;        if ( dictionary != null ) {            Enumeration keys = dictionary.keys();            while ( keys.hasMoreElements() ) {                Component label = (Component)dictionary.get( keys.nextElement() );                widest = Math.max( label.getPreferredSize().width, widest );            }        }        return widest;    }    protected int getHeightOfTallestLabel() {        Dictionary dictionary = slider.getLabelTable();        int tallest = 0;        if ( dictionary != null ) {            Enumeration keys = dictionary.keys();            while ( keys.hasMoreElements() ) {                Component label = (Component)dictionary.get( keys.nextElement() );                tallest = Math.max( label.getPreferredSize().height, tallest );            }        }        return tallest;    }    protected int getWidthOfHighValueLabel() {        Component label = getHighestValueLabel();        int width = 0;        if ( label != null ) {            width = label.getPreferredSize().width;        }

⌨️ 快捷键说明

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