afreechart/src/main/java/org/afree/chart/axis/NumberAxis.java
/**
     * Estimates the maximum width of the tick labels, assuming the specified
     * tick unit is used.
     * <P>
     * Rather than computing the string bounds of every tick on the axis, we
     * just look at two values: the lower bound and the upper bound for the
     * axis. These two values will usually be representative.
     * 
     * @param canvas
     *            the graphics device.
     * @param unit
     *            the tick unit to use for calculation.
     * 
     * @return The estimated maximum width of the tick labels.
     */
Estimates the maximum width of the tick labels, assuming the specified
tick unit is used.

Rather than computing the string bounds of every tick on the axis, we
just look at two values: the lower bound and the upper bound for the
axis. These two values will usually be representative.

@param canvas
the graphics device.
@param unit
the tick unit to use for calculation.

@return The estimated maximum width of the tick labels.
Estimates the maximum width of the tick labels assuming the specified tick unit is used . Rather than computing the string bounds of every tick on the axis we just look at two values : the lower bound and the upper bound for the axis . These two values will usually be representative . @param canvas the graphics device . @param unit the tick unit to use for calculation . @return The estimated maximum width of the tick labels .
protected double estimateMaximumTickLabelWidth(Canvas canvas, TickUnit unit) {
        RectangleInsets tickLabelInsets = getTickLabelInsets();
        double result = tickLabelInsets.getLeft() + tickLabelInsets.getRight();
        if (isVerticalTickLabels()) {
            Paint p = PaintUtility.createPaint(Paint.ANTI_ALIAS_FLAG, new SolidColor(Color.BLACK), getTickLabelFont());
            RectShape rec = TextUtilities.getTextBounds("0", p);
            result += rec.getHeight();
        } else {
            Paint p = PaintUtility.createPaint(Paint.ANTI_ALIAS_FLAG, new SolidColor(Color.BLACK), getTickLabelFont());
            Range range = getRange();
            double lower = range.getLowerBound();
            double upper = range.getUpperBound();
            String lowerStr = "";
            String upperStr = "";
            NumberFormat formatter = getNumberFormatOverride();
            if (formatter != null) {
                lowerStr = formatter.format(lower);
                upperStr = formatter.format(upper);
            } else {
                lowerStr = unit.valueToString(lower);
                upperStr = unit.valueToString(upper);
            }
            double w1 = TextUtilities.getTextBounds(lowerStr, p).getWidth();
            double w2 = TextUtilities.getTextBounds(upperStr, p).getWidth();
            result += Math.max(w1, w2);
        }
        return result;
    }
protected double estimateMaximumTickLabelWidth ( Canvas canvas , TickUnit unit ) { RectangleInsets tickLabelInsets = getTickLabelInsets ( ) ; double result = tickLabelInsets . getLeft ( ) + tickLabelInsets . getRight ( ) ; if ( isVerticalTickLabels ( ) ) { Paint p = PaintUtility . createPaint ( Paint . ANTI_ALIAS_FLAG , new SolidColor ( Color . BLACK ) , getTickLabelFont ( ) ) ; RectShape rec = TextUtilities . getTextBounds ( "0" , p ) ; result += rec . getHeight ( ) ; } else { Paint p = PaintUtility . createPaint ( Paint . ANTI_ALIAS_FLAG , new SolidColor ( Color . BLACK ) , getTickLabelFont ( ) ) ; Range range = getRange ( ) ; double lower = range . getLowerBound ( ) ; double upper = range . getUpperBound ( ) ; String lowerStr = "" ; String upperStr = "" ; NumberFormat formatter = getNumberFormatOverride ( ) ; if ( formatter != null ) { lowerStr = formatter . format ( lower ) ; upperStr = formatter . format ( upper ) ; } else { lowerStr = unit . valueToString ( lower ) ; upperStr = unit . valueToString ( upper ) ; } double w1 = TextUtilities . getTextBounds ( lowerStr , p ) . getWidth ( ) ; double w2 = TextUtilities . getTextBounds ( upperStr , p ) . getWidth ( ) ; result += Math . max ( w1 , w2 ) ; } return result ; }
Estimates the maximum width of the tick labels, assuming the specified
 tick unit is used.
Estimates the maximum width of the tick labels assuming the specified tick unit is used .
// all tick labels have the same width (equal to the height of the // font)... // look at lower and upper bounds... // FontMetrics fm = canvas.getFontMetrics(getTickLabelFont());