diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java index 1891a9b07d76f4990a00bebbdbb5274a1da45e02..3fadc766c477f487a0f121545e53409b4aa0d17c 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java @@ -70,6 +70,9 @@ public class Legend implements ChartPart { if (!chartPainter.getStyleManager().isLegendVisible()) { return new double[] { 0, 0 }; } + if (chartPainter.getPlot().getBounds().getWidth() < 30) { + return new double[] { 0, 0 }; + } StyleManager styleManager = getChartPainter().getStyleManager(); boolean isBar = styleManager.getChartType() == ChartType.Bar; @@ -114,6 +117,11 @@ public class Legend implements ChartPart { @Override public void paint(Graphics2D g) { + // if the area to draw a chart on is so small, don't even bother + if (chartPainter.getPlot().getBounds().getWidth() < 30) { + return; + } + bounds = new Rectangle2D.Double(); // g.setFont(chartPainter.getStyleManager().getLegendFont()); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java index 5f84e9e58330d02f8a58711ac277ed9bb813a441..e68ad52661e1a7140c4f8d2aaa8d80ad21987c14 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java @@ -54,6 +54,11 @@ public class PlotContentLineChart extends PlotContent { // g.setColor(Color.red); // g.draw(bounds); + // if the area to draw a chart on is so small, don't even bother + if (bounds.getWidth() < 30) { + return; + } + StyleManager styleManager = plot.getChartPainter().getStyleManager(); // this is for preventing the series to be drawn outside the plot area if min and max is overridden to fall inside the data range