From b0b074a931bb3019d49a6d9f53dfee80c71e00f4 Mon Sep 17 00:00:00 2001 From: malenkov Date: Mon, 31 Jan 2011 21:31:39 +0300 Subject: [PATCH] 7001118: DOC: javax.swing.border.StrokeBorder.paintBorder() doesn't throw NPE in all specified cases Reviewed-by: alexp --- src/share/classes/javax/swing/border/StrokeBorder.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/share/classes/javax/swing/border/StrokeBorder.java b/src/share/classes/javax/swing/border/StrokeBorder.java index eed8c00aa..34e81f024 100644 --- a/src/share/classes/javax/swing/border/StrokeBorder.java +++ b/src/share/classes/javax/swing/border/StrokeBorder.java @@ -88,6 +88,10 @@ public class StrokeBorder extends AbstractBorder { /** * Paints the border for the specified component * with the specified position and size. + * If the border was not specified with a {@link Paint} object, + * the component's foreground color will be used to render the border. + * If the component's foreground color is not available, + * the default color of the {@link Graphics} object will be used. * * @param c the component for which this border is being painted * @param g the paint graphics @@ -96,7 +100,7 @@ public class StrokeBorder extends AbstractBorder { * @param width the width of the painted border * @param height the height of the painted border * - * @throws NullPointerException if the specified {@code c} or {@code g} are {@code null} + * @throws NullPointerException if the specified {@code g} is {@code null} */ @Override public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { @@ -106,7 +110,7 @@ public class StrokeBorder extends AbstractBorder { if (g instanceof Graphics2D) { Graphics2D g2d = (Graphics2D) g; g2d.setStroke(this.stroke); - g2d.setPaint(this.paint != null ? this.paint : c.getForeground()); + g2d.setPaint(this.paint != null ? this.paint : c == null ? null : c.getForeground()); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.draw(new Rectangle2D.Float(x + size / 2, y + size / 2, width - size, height - size)); -- GitLab