diff --git a/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java b/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java index ef66f9915ab60c9e82ed68c3da3281e4bc461fcf..87d1eb88536fe0c3fd234349b393c46ea4436138 100644 --- a/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java +++ b/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java @@ -29,7 +29,7 @@ import com.xeiam.xchart.internal.interfaces.IChartPart; public class AxisTickLabels implements IChartPart { /** parent */ - private AxisTick axisTick; + private final AxisTick axisTick; /** the font */ public Font font; @@ -58,6 +58,7 @@ public class AxisTickLabels implements IChartPart { public void paint(Graphics2D g) { bounds = new Rectangle(); + g.setFont(font); g.setColor(axisTick.axis.axisPair.chart.fontColor); diff --git a/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java b/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java index 498972d9358025f60758ddf5323df6f3d6b22462..b65ec9f976879b44090daafdac71516fa249f72d 100644 --- a/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java +++ b/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java @@ -96,6 +96,7 @@ public class AxisTitle implements IChartPart, IHideable { bounds = new Rectangle(); g.setColor(axis.axisPair.chart.fontColor); + g.setFont(font); if (axis.direction == Axis.Direction.Y) { if (isVisible) { @@ -105,20 +106,28 @@ public class AxisTitle implements IChartPart, IHideable { Rectangle nonRotatedRectangle = nonRotatedTextLayout.getPixelBounds(null, 0, 0); // System.out.println(nonRotatedRectangle); - AffineTransform at = new AffineTransform(); - // Tx.translate(anchorx, anchory); // S3: final translation - double theta = Math.PI / -2.0; - at.rotate(theta); // S2: rotate around anchor - // Tx.translate(-anchorx, -anchory); // S1: translate anchor to origin - Font derivedFont = font.deriveFont(at); - TextLayout rotatedTextLayout = new TextLayout(text, derivedFont, frc); - // TextLayout rotatedTextLayout = new TextLayout(text, font.deriveFont(AffineTransform.getRotateInstance(Math.PI / -2.0, 0, 0)), frc); - // Rectangle rotatedRectangle = rotatedTextLayout.getPixelBounds(null, 0, 0); - // System.out.println(rotatedRectangle); - + // /////////////////////////////////////////////// + + // AffineTransform at = new AffineTransform(); + // // Tx.translate(anchorx, anchory); // S3: final translation + // double theta = Math.PI / -2.0; + // at.rotate(theta); // S2: rotate around anchor + // // Tx.translate(-anchorx, -anchory); // S1: translate anchor to origin + // Font derivedFont = font.deriveFont(at); + // TextLayout rotatedTextLayout = new TextLayout(text, derivedFont, frc); + // // TextLayout rotatedTextLayout = new TextLayout(text, font.deriveFont(AffineTransform.getRotateInstance(Math.PI / -2.0, 0, 0)), frc); + // // Rectangle rotatedRectangle = rotatedTextLayout.getPixelBounds(null, 0, 0); + // // System.out.println(rotatedRectangle); + // int xOffset = (int) (axis.getPaintZone().getX() + nonRotatedRectangle.getHeight()); int yOffset = (int) ((axis.getPaintZone().getHeight() + nonRotatedRectangle.getWidth()) / 2.0 + axis.getPaintZone().getY()); - rotatedTextLayout.draw(g, xOffset, yOffset); + AffineTransform orig = g.getTransform(); + g.transform(AffineTransform.getRotateInstance(Math.PI / -2.0, xOffset, yOffset)); + g.drawString(text, xOffset, yOffset); + // rotatedTextLayout.draw(g, xOffset, yOffset); + + // /////////////////////////////////////////////// + g.setTransform(orig); // bounds bounds = new Rectangle((int) (xOffset - nonRotatedRectangle.getHeight()), (int) (yOffset - nonRotatedRectangle.getWidth()), (int) nonRotatedRectangle.getHeight() + AXIS_TITLE_PADDING, diff --git a/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java b/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java index 3b38c746279436a974f625a118aabe5d87c0039f..5593723fb40b6b78121dc0cb6826b7f9658adae7 100644 --- a/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java +++ b/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java @@ -31,7 +31,7 @@ import com.xeiam.xchart.internal.interfaces.IHideable; public class ChartTitle implements IChartPart, IHideable { /** parent */ - private Chart chart; + private final Chart chart; /** the title text */ protected String text = ""; // default to "" @@ -76,6 +76,7 @@ public class ChartTitle implements IChartPart, IHideable { public void paint(Graphics2D g) { bounds = new Rectangle(); + g.setFont(font); if (isVisible) { diff --git a/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java b/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java index 984b8d41d88d389504c3a7783914d9293e911824..af53c8e4439e7c03cbd3eb724ef34d3c3f6f0cfc 100644 --- a/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java +++ b/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java @@ -38,7 +38,7 @@ public class Legend implements IChartPart, IHideable { private static final int LEGEND_PADDING = 10; /** parent */ - private Chart chart; + private final Chart chart; /** the visibility state of legend */ protected boolean isVisible = true; // default to true @@ -74,6 +74,7 @@ public class Legend implements IChartPart, IHideable { public void paint(Graphics2D g) { bounds = new Rectangle(); + g.setFont(font); if (isVisible) {