diff --git a/src/java/com/samskivert/swing/Label.java b/src/java/com/samskivert/swing/Label.java index 473f675f..b3ca89e5 100644 --- a/src/java/com/samskivert/swing/Label.java +++ b/src/java/com/samskivert/swing/Label.java @@ -49,6 +49,8 @@ import com.samskivert.util.RunAnywhere; import com.samskivert.util.StringUtil; import com.samskivert.util.Tuple; +import com.samskivert.swing.util.SwingUtil; + import static com.samskivert.Log.log; /** @@ -377,6 +379,10 @@ public class Label implements SwingConstants, LabelStyleConstants FontRenderContext frc = gfx.getFontRenderContext(); List> layouts = null; + // if text antialiasing is enabled by default, honor that setting + Object oalias = SwingUtil.getDefaultTextAntialiasing() ? + SwingUtil.activateAntiAliasing(gfx) : null; + // if we have a target height, do some processing and convert that into a target width if (_constraints.height > 0 || _constraints.width == -1) { int targetHeight = _constraints.height; @@ -458,6 +464,9 @@ public class Label implements SwingConstants, LabelStyleConstants _leaders[ii] = (float)-_lbounds[ii].getX(); } } + + // finally restore our antialiasing state + SwingUtil.restoreAntiAliasing(gfx, oalias); } /** diff --git a/src/java/com/samskivert/swing/LabelSausage.java b/src/java/com/samskivert/swing/LabelSausage.java index 39626518..f31c0e0e 100644 --- a/src/java/com/samskivert/swing/LabelSausage.java +++ b/src/java/com/samskivert/swing/LabelSausage.java @@ -72,13 +72,10 @@ public abstract class LabelSausage } // lay out our label - if (SwingUtil.getDefaultTextAntialiasing()) { - Object oalias = SwingUtil.activateAntiAliasing(gfx); - _label.layout(gfx); - SwingUtil.restoreAntiAliasing(gfx, oalias); - } else { - _label.layout(gfx); - } + Object oalias = SwingUtil.getDefaultTextAntialiasing() ? + SwingUtil.activateAntiAliasing(gfx) : null; + _label.layout(gfx); + SwingUtil.restoreAntiAliasing(gfx, oalias); Dimension lsize = _label.getSize(); diff --git a/src/java/com/samskivert/swing/MultiLineLabel.java b/src/java/com/samskivert/swing/MultiLineLabel.java index 71ba8abd..b6e1e1cf 100644 --- a/src/java/com/samskivert/swing/MultiLineLabel.java +++ b/src/java/com/samskivert/swing/MultiLineLabel.java @@ -24,7 +24,6 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Graphics; -import java.awt.RenderingHints; import javax.swing.JComponent; import javax.swing.SwingConstants; @@ -88,13 +87,12 @@ public class MultiLineLabel extends JComponent } /** - * Sets whether this label's text should be rendered with anti-aliasing. + * @deprecated see {@link SwingUtil#getDefaultAntiAliasing} on how to control text + * antialiasing. */ + @Deprecated public void setAntiAliased (boolean antialiased) { - _antialiased = antialiased; - _dirty = true; - repaint(); } /** @@ -245,14 +243,7 @@ public class MultiLineLabel extends JComponent } // draw the label - Object oalias = null; - if (_antialiased) { - oalias = SwingUtil.activateAntiAliasing(gfx); - } _label.render(gfx, dx, dy); - if (_antialiased) { - SwingUtil.restoreAntiAliasing(gfx, oalias); - } } @Override @@ -323,9 +314,6 @@ public class MultiLineLabel extends JComponent Graphics2D gfx = (Graphics2D)getGraphics(); if (gfx != null) { // re-layout the label - gfx.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, (_antialiased) ? - RenderingHints.VALUE_TEXT_ANTIALIAS_ON : - RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); _label.layout(gfx); gfx.dispose(); @@ -385,9 +373,6 @@ public class MultiLineLabel extends JComponent /** The size to which we constrained ourselves when most recently laid out. */ protected int _constrainedSize; - /** Whether to render the label with anti-aliasing. */ - protected boolean _antialiased = SwingUtil.getDefaultTextAntialiasing(); - /** Whether this label is dirty and should be re-layed out. */ protected boolean _dirty = true; } diff --git a/src/java/com/samskivert/swing/util/SwingUtil.java b/src/java/com/samskivert/swing/util/SwingUtil.java index a832b3a8..819dce18 100644 --- a/src/java/com/samskivert/swing/util/SwingUtil.java +++ b/src/java/com/samskivert/swing/util/SwingUtil.java @@ -432,11 +432,15 @@ public class SwingUtil /** * Restores anti-aliasing in the supplied graphics context to its original setting. * - * @param rock the results of a previous call to {@link #activateAntiAliasing}. + * @param rock the results of a previous call to {@link #activateAntiAliasing} or null, in + * which case this method will NOOP. This alleviates every caller having to conditionally avoid + * calling restore if they chose not to activate earlier. */ public static void restoreAntiAliasing (Graphics2D gfx, Object rock) { - gfx.setRenderingHints((RenderingHints)rock); + if (rock != null) { + gfx.setRenderingHints((RenderingHints)rock); + } } /**