-
Bug
-
Resolution: Duplicate
-
P2
-
None
-
7
-
generic
-
generic
Method javax.swing.plaf.nimbus.AbstractRegionPainter.decodeRadialGradient(...) throws unspecified IllegalArgumentException for negative radius values. It should be specified.
Please see the following code sample:
------------------------------------------------------------------------------------
import javax.swing.*;
import java.awt.*;
import static java.awt.Color.*;
public class Test {
public static void main(String[] args) {
class MyARP extends javax.swing.plaf.nimbus.AbstractRegionPainter {
protected PaintContext getPaintContext() { return null; }
protected void doPaint(Graphics2D g, JComponent c,
int width, int height,
Object[] extendedCacheKeys) { }
void callWithNegRadius() {
float radius = -1.f;
decodeRadialGradient(0.1f, 0.5f, radius,
new float[]{.1f, 0.2f}, new Color[]{BLACK, BLUE});
}
}
new MyARP().callWithNegRadius();
}
}
------------------------------------------------------------------------------------
Execution will lead to:
Exception in thread "main" java.lang.IllegalArgumentException: Radius must be greater than zero
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:451)
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:387)
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:344)
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:176)
at javax.swing.plaf.nimbus.AbstractRegionPainter.decodeRadialGradient(AbstractRegionPainter.java:393)
at Test$1MyARP.callWithNegRadius(Test.java:15)
at Test.main(Test.java:19)
Please see the following code sample:
------------------------------------------------------------------------------------
import javax.swing.*;
import java.awt.*;
import static java.awt.Color.*;
public class Test {
public static void main(String[] args) {
class MyARP extends javax.swing.plaf.nimbus.AbstractRegionPainter {
protected PaintContext getPaintContext() { return null; }
protected void doPaint(Graphics2D g, JComponent c,
int width, int height,
Object[] extendedCacheKeys) { }
void callWithNegRadius() {
float radius = -1.f;
decodeRadialGradient(0.1f, 0.5f, radius,
new float[]{.1f, 0.2f}, new Color[]{BLACK, BLUE});
}
}
new MyARP().callWithNegRadius();
}
}
------------------------------------------------------------------------------------
Execution will lead to:
Exception in thread "main" java.lang.IllegalArgumentException: Radius must be greater than zero
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:451)
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:387)
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:344)
at java.awt.RadialGradientPaint.<init>(RadialGradientPaint.java:176)
at javax.swing.plaf.nimbus.AbstractRegionPainter.decodeRadialGradient(AbstractRegionPainter.java:393)
at Test$1MyARP.callWithNegRadius(Test.java:15)
at Test.main(Test.java:19)
- duplicates
-
JDK-6849331 Nimbus L&F: AbstractRegionPainter's paint context is not initialized
-
- Resolved
-