Search in sources :

Example 16 with RadialGradientPaint

use of java.awt.RadialGradientPaint in project jdk8u_jdk by JetBrains.

the class ConcurrentWritingTest method createTestImage.

private static BufferedImage createTestImage() {
    int w = 1024;
    int h = 768;
    BufferedImage img = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    Graphics2D g = img.createGraphics();
    Color[] colors = { Color.red, Color.green, Color.blue };
    float[] dist = { 0.0f, 0.5f, 1.0f };
    Point2D center = new Point2D.Float(0.5f * w, 0.5f * h);
    RadialGradientPaint p = new RadialGradientPaint(center, 0.5f * w, dist, colors);
    g.setPaint(p);
    g.fillRect(0, 0, w, h);
    g.dispose();
    return img;
}
Also used : Point2D(java.awt.geom.Point2D) Color(java.awt.Color) RadialGradientPaint(java.awt.RadialGradientPaint) RadialGradientPaint(java.awt.RadialGradientPaint) BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D)

Example 17 with RadialGradientPaint

use of java.awt.RadialGradientPaint in project jdk8u_jdk by JetBrains.

the class ConcurrentReadingTest method createTestFile.

private static void createTestFile() {
    int w = 1280;
    int h = 1024;
    BufferedImage img = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    Graphics2D g = img.createGraphics();
    Color[] colors = { Color.red, Color.green, Color.blue };
    float[] dist = { 0.0f, 0.5f, 1.0f };
    Point2D center = new Point2D.Float(0.5f * w, 0.5f * h);
    RadialGradientPaint p = new RadialGradientPaint(center, 0.5f * w, dist, colors);
    g.setPaint(p);
    g.fillRect(0, 0, w, h);
    g.dispose();
    try {
        System.out.println("Create test image " + file.getAbsolutePath());
        boolean b = ImageIO.write(img, "JPEG", file);
        if (!b) {
            throw new RuntimeException("Failed to create test image.");
        }
    } catch (IOException e) {
        throw new RuntimeException("Test failed", e);
    }
}
Also used : Point2D(java.awt.geom.Point2D) Color(java.awt.Color) RadialGradientPaint(java.awt.RadialGradientPaint) IOException(java.io.IOException) RadialGradientPaint(java.awt.RadialGradientPaint) BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D)

Example 18 with RadialGradientPaint

use of java.awt.RadialGradientPaint in project vcell by virtualcell.

the class ResizeCanvasShapeIcon method paintIcon.

@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
    if (c == null) {
        return;
    }
    if (!(c instanceof JButton)) {
        return;
    }
    JButton b = (JButton) c;
    // button center
    int cx = b.getWidth() / 2;
    int cy = b.getHeight() / 2;
    Graphics2D g2 = (Graphics2D) g;
    Color colorOld = g2.getColor();
    Paint paintOld = g2.getPaint();
    Stroke strokeOld = g2.getStroke();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    // the nock (base end, towards the fletching) of the arrow shaft
    Color interior;
    // the spine (tip end, connecting to the arrow head) of the shaft
    Color exterior;
    // the arrow head
    Color tip;
    Color[] colors;
    float[] dist;
    Color c1, c2, c3;
    if (sign == Sign.expand) {
        c1 = SpeciesPatternLargeShape.componentGreen.darker();
        c2 = SpeciesPatternLargeShape.componentGreen.darker().darker();
        c3 = Color.green.darker().darker();
    } else {
        c1 = SpeciesPatternLargeShape.componentBad.darker();
        c2 = SpeciesPatternLargeShape.componentBad.darker().darker();
        c3 = Color.red.darker().darker();
    }
    Point2D center = new Point2D.Float(cx, cy);
    float radius = side / 2 + 1;
    // white mapped in the center
    Point2D focus = new Point2D.Float(cx, cy);
    if (b.isEnabled()) {
        if (state == State.normal) {
            // Color.cyan;
            interior = c1;
            // Color.blue;
            exterior = c2;
            // Color.blue.darker();
            tip = c3.darker();
        } else {
            // pressed! same colors, brighter when button is pressed
            // Color.cyan.brighter();
            interior = c1.brighter();
            // Color.blue.brighter();
            exterior = c2.brighter();
            // Color.blue;
            tip = c3.brighter();
        }
    } else {
        // disabled - uniform gray, regardless of pressed
        interior = Color.lightGray;
        exterior = Color.gray;
        tip = Color.gray;
    }
    if (sign == Sign.expand) {
        colors = new Color[] { interior, exterior };
        dist = new float[] { 0.2f, 1.0f };
    } else {
        // arrow points the other way, so the arrow colors are inverted
        colors = new Color[] { exterior, interior };
        dist = new float[] { 0.9f, 1.0f };
    }
    RadialGradientPaint paint = new RadialGradientPaint(center, radius, focus, dist, colors, CycleMethod.NO_CYCLE);
    g2.setPaint(paint);
    // starting offset (how far away from center starts the shaft of the arrow)
    int o;
    // length of the 2 "wings" of the arrow head)
    int d;
    int xx = side / 2;
    int yy = side / 2;
    float strokeWidth;
    if (sign == Sign.expand) {
        o = 2;
        d = 4;
        strokeWidth = 2.0f;
    } else {
        // shrink
        o = 2;
        d = 4;
        // xx++;
        // yy++;
        strokeWidth = 1.6f;
    }
    g2.setStroke(new // Line width
    BasicStroke(// Line width
    strokeWidth, // End-cap style
    BasicStroke.CAP_ROUND, // Vertex join style
    BasicStroke.JOIN_ROUND));
    // upper left
    g2.drawLine(cx - o, cy - o, cx - xx, cy - yy);
    // upper right
    g2.drawLine(cx + o, cy - o, cx + xx, cy - yy);
    // lower left
    g2.drawLine(cx - o, cy + o, cx - xx, cy + yy);
    // lower right
    g2.drawLine(cx + o, cy + o, cx + xx, cy + yy);
    g2.setPaint(paintOld);
    g2.setColor(tip);
    if (sign == Sign.expand) {
        // upper left
        g2.drawLine(cx - xx, cy - yy, cx - xx + d, cy - yy);
        g2.drawLine(cx - xx, cy - yy, cx - xx, cy - yy + d);
        // upper right
        g2.drawLine(cx + xx, cy - yy, cx + xx - d, cy - yy);
        g2.drawLine(cx + xx, cy - yy, cx + xx, cy - yy + d);
        // lower left
        g2.drawLine(cx - xx, cy + yy, cx - xx + d, cy + yy);
        g2.drawLine(cx - xx, cy + yy, cx - xx, cy + yy - d);
        // lower right
        g2.drawLine(cx + xx, cy + yy, cx + xx - d, cy + yy);
        g2.drawLine(cx + xx, cy + yy, cx + xx, cy + yy - d);
    } else {
        // upper left
        g2.drawLine(cx - o, cy - o, cx - o - d, cy - o);
        g2.drawLine(cx - o, cy - o, cx - o, cy - o - d);
        // upper right
        g2.drawLine(cx + o, cy - o, cx + o + d, cy - o);
        g2.drawLine(cx + o, cy - o, cx + o, cy - o - d);
        // lower left
        g2.drawLine(cx - o, cy + o, cx - o - d, cy + o);
        g2.drawLine(cx - o, cy + o, cx - o, cy + o + d);
        // lower right
        g2.drawLine(cx + o, cy + o, cx + o + d, cy + o);
        g2.drawLine(cx + o, cy + o, cx + o, cy + o + d);
    }
    g2.setStroke(strokeOld);
    g2.setColor(colorOld);
    g2.setPaint(paintOld);
}
Also used : Stroke(java.awt.Stroke) BasicStroke(java.awt.BasicStroke) Color(java.awt.Color) JButton(javax.swing.JButton) RadialGradientPaint(java.awt.RadialGradientPaint) Paint(java.awt.Paint) RadialGradientPaint(java.awt.RadialGradientPaint) RadialGradientPaint(java.awt.RadialGradientPaint) Paint(java.awt.Paint) Graphics2D(java.awt.Graphics2D) Point2D(java.awt.geom.Point2D)

Example 19 with RadialGradientPaint

use of java.awt.RadialGradientPaint in project vcell by virtualcell.

the class SpeciesToolShapeIcon method paintIcon.

@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
    if (c == null) {
        return;
    }
    if (!(c instanceof JToolBarToggleButton)) {
        return;
    }
    JToolBarToggleButton b = (JToolBarToggleButton) c;
    Graphics2D g2 = (Graphics2D) g;
    Color colorOld = g2.getColor();
    Paint paintOld = g2.getPaint();
    Stroke strokeOld = g2.getStroke();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    // (diameter-circleDiameter) / 2
    int xx = 2;
    int yy = 2;
    Color exterior, interior;
    if (state == State.normal) {
        exterior = Color.green.darker().darker();
        interior = Color.white;
        xx += x;
        yy += y;
    } else {
        exterior = Color.green.darker();
        interior = Color.white;
        // button moves a little bit to simulate 3D pressing of a button
        xx += x + 1;
        yy += y + 1;
    }
    Ellipse2D e = new Ellipse2D.Double(xx, yy, circleDiameter, circleDiameter);
    Point2D center = new Point2D.Float(xx + circleDiameter / 2, yy + circleDiameter / 2);
    float radius = circleDiameter * 0.5f;
    Point2D focus = new Point2D.Float(xx + circleDiameter / 2 - 2, yy + circleDiameter / 2 - 2);
    float[] dist = { 0.1f, 1.0f };
    Color[] colors = { interior, exterior };
    RadialGradientPaint p = new RadialGradientPaint(center, radius, focus, dist, colors, CycleMethod.NO_CYCLE);
    g2.setPaint(p);
    g2.fill(e);
    g.setColor(Color.black);
    g2.draw(e);
    g2.setStroke(strokeOld);
    g2.setColor(colorOld);
    g2.setPaint(paintOld);
}
Also used : Stroke(java.awt.Stroke) Color(java.awt.Color) RadialGradientPaint(java.awt.RadialGradientPaint) Paint(java.awt.Paint) RadialGradientPaint(java.awt.RadialGradientPaint) JToolBarToggleButton(org.vcell.util.gui.JToolBarToggleButton) RadialGradientPaint(java.awt.RadialGradientPaint) Paint(java.awt.Paint) Ellipse2D(java.awt.geom.Ellipse2D) Graphics2D(java.awt.Graphics2D) Point2D(java.awt.geom.Point2D)

Example 20 with RadialGradientPaint

use of java.awt.RadialGradientPaint in project vcell by virtualcell.

the class ZoomShapeIcon method paintIcon.

@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
    if (c == null) {
        return;
    }
    if (!(c instanceof JButton)) {
        return;
    }
    JButton b = (JButton) c;
    int xPos = (b.getWidth() - diameter) / 2;
    int yPos = (b.getHeight() - diameter) / 2 + 1;
    Graphics2D g2 = (Graphics2D) g;
    Color colorOld = g2.getColor();
    Paint paintOld = g2.getPaint();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    Color interior = Color.white;
    Color exterior;
    Color signColor;
    Color contour;
    Color c1, c2;
    if (sign == Sign.plus) {
        c1 = SpeciesPatternLargeShape.componentGreen;
        c2 = Color.green;
    } else {
        c1 = SpeciesPatternLargeShape.componentBad;
        c2 = Color.red;
    }
    if (b.isEnabled()) {
        if (state == State.normal) {
            exterior = c1.darker();
            signColor = c2.darker().darker().darker();
        } else {
            // same colors, brighter when button is pressed
            exterior = c1;
            signColor = c2.darker().darker();
        }
        contour = c1.darker().darker().darker();
    } else {
        // disabled
        exterior = Color.lightGray;
        signColor = Color.gray;
        contour = Color.gray;
    }
    Point2D center = new Point2D.Float(xPos + diameter / 3, yPos + diameter / 3);
    float radius = diameter * 0.5f;
    Point2D focus = new Point2D.Float(xPos + diameter / 3 - 1, yPos + diameter / 3 - 1);
    float[] dist = { 0.1f, 1.0f };
    Color[] colors = { interior, exterior };
    RadialGradientPaint p = new RadialGradientPaint(center, radius, focus, dist, colors, CycleMethod.NO_CYCLE);
    g2.setPaint(p);
    Ellipse2D circle = new Ellipse2D.Double(xPos, yPos, diameter, diameter);
    g2.fill(circle);
    Ellipse2D circle2 = new Ellipse2D.Double(xPos - 1, yPos - 1, diameter, diameter);
    g2.setPaint(contour);
    g2.draw(circle2);
    // TODO: use diameter instead of hardcoded numbers for the horizontal and vertical lines
    // offset left and right from center (for the vertical and orizontal lines)
    int i = diameter / 4;
    // center of circle
    int cx = b.getWidth() / 2;
    int cy = b.getHeight() / 2;
    g2.setColor(signColor);
    // horizontal bar of the '-' or '+' signs
    g2.drawLine(cx - i - 1, cy - 1, cx + i - 1, cy - 1);
    g2.drawLine(cx - i - 1, cy, cx + i - 1, cy);
    g2.drawLine(cx - i - 1, cy + 1, cx + i - 1, cy + 1);
    if (sign == Sign.plus) {
        // draw the vertical bar of the '+' sign
        // vertical
        g2.drawLine(cx, cy - i, cx, cy + i);
        g2.drawLine(cx - 1, cy - i, cx - 1, cy + i);
        g2.drawLine(cx - 2, cy - i, cx - 2, cy + i);
    }
    g2.setColor(colorOld);
    g2.setPaint(paintOld);
}
Also used : Color(java.awt.Color) JButton(javax.swing.JButton) RadialGradientPaint(java.awt.RadialGradientPaint) Paint(java.awt.Paint) RadialGradientPaint(java.awt.RadialGradientPaint) RadialGradientPaint(java.awt.RadialGradientPaint) Paint(java.awt.Paint) Ellipse2D(java.awt.geom.Ellipse2D) Graphics2D(java.awt.Graphics2D) Point2D(java.awt.geom.Point2D)

Aggregations

RadialGradientPaint (java.awt.RadialGradientPaint)21 Color (java.awt.Color)19 Point2D (java.awt.geom.Point2D)19 Graphics2D (java.awt.Graphics2D)16 Paint (java.awt.Paint)9 Ellipse2D (java.awt.geom.Ellipse2D)6 BufferedImage (java.awt.image.BufferedImage)6 GradientPaint (java.awt.GradientPaint)5 LinearGradientPaint (java.awt.LinearGradientPaint)4 Stroke (java.awt.Stroke)4 RbmModelContainer (cbit.vcell.model.Model.RbmModelContainer)3 Point (java.awt.Point)3 Rectangle (java.awt.Rectangle)3 TexturePaint (java.awt.TexturePaint)3 RoundRectangle2D (java.awt.geom.RoundRectangle2D)3 MolecularType (org.vcell.model.rbm.MolecularType)3 BasicStroke (java.awt.BasicStroke)2 MultipleGradientPaint (java.awt.MultipleGradientPaint)2 Area (java.awt.geom.Area)2 Rectangle2D (java.awt.geom.Rectangle2D)2