Java2D: GradientPaint mit mehreren Farben

Status
Nicht offen für weitere Antworten.

MadHatter

Aktives Mitglied
Hi,
mit einem GradientPaint kann ich leider nur von einer Farbe zu einer zweiten einen Farbverlauf darstellen. Ich hätte aber gerne, wie es z.B. mit GDIPlus von Microsoft geht, dass ich zwischen mehreren Farben verlaufen kann, und am besten noch deren Position angeben. (Z.B. bei von 0.0 bis 0.3 geht Farbe Gelb auf Rot, von 0.3 bis 0.9 geht Rot auf Grün, von 0.9 bis 1.0 geht Grün auf Schwarz).

Wie krieg ich das hin?
 

MadHatter

Aktives Mitglied
Hi,
ich glaub es gibt schon eine Lösung für mein Problem: MultipleGradientPaint von "Batik/Apache" oder so. Aber wo krieg ich es (ich hab schon danach gesucht, aber das hat irgendwie nix direkt mit MultipleGradientPaint zu tun), was muss ich machen um das MultipleGradientPaint benutzen zu können? Wo sollen die Dateien hin, usw.? (Ich benutze eclipse v3).
 

André Uhres

Top Contributor
MadHatter hat gesagt.:
An sowas hab ich auch gedacht, aber wie geht das? ...
Code:
//package paint; 
/* 
* GradientDemo.java 
*/ 
import java.awt.*; 
import java.awt.geom.*; 
import javax.swing.*; 
class GradientDemo extends JFrame { 
    public GradientDemo() { 
        super("Gradient Demo");
        setSize(1000,350); 
        setLocationRelativeTo(null); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        getContentPane().add(new Gpanel()); 
        setVisible(true); 
    } 
    public static void main(String arg[]) {new GradientDemo();} 
} 
class Gpanel extends JPanel { 
    Gpanel() { 
        gradient1 = new GradientPaint(30,55,Color.blue,100,100,Color.red,true); 
        gradient2 = new GradientPaint(30,55,Color.green,100,100,Color.red,true); 
        gradient3 = new GradientPaint(30,55,Color.green,100,100,Color.magenta,true); 
        gradient4 = new GradientPaint(30,57,Color.blue,100,70,Color.red,true); 
        gradient5 = new GradientPaint(30,57,Color.blue,100,70,Color.green,true); 
        gradient6 = new GradientPaint(30,57,Color.blue,100,70,Color.ORANGE,true); 
        stroke3 = new BasicStroke(3); 
        bgd = new Color(240,200,100); 
        rect1 = new Rectangle(30,50,870,100); 
        rect2 = new Rectangle(30,180,900,100); 
        areaRect2 = new Area(rect2); 
        oval = new Ellipse2D.Float(30,180,800,100); 
        areaOval = new Area(oval); 
        areaRect2.subtract(areaOval); 
    } 
    public void paintComponent(Graphics g) { 
        super.paintComponent(g);
        Graphics2D g2D = (Graphics2D) g; 
        g2D.setStroke(stroke3); 
        g2D.setColor(bgd); 
        g2D.fill(getBounds()); 
        g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        //Rectangle: 
        g2D.setPaint(gradient1); 
        g2D.fillRect(30,50,300,100); 
        g2D.setPaint(gradient2); 
        g2D.fillRect(300,50,300,100); 
        g2D.setPaint(gradient3); 
        g2D.fillRect(600,50,300,100); 
        g2D.setColor(Color.black); 
        g2D.draw(rect1); 
        //Oval: 
        g2D.setPaint(gradient4); 
        g2D.fillRect(30,180,300,100); 
        g2D.setPaint(gradient5); 
        g2D.fillRect(300,180,300,100); 
        g2D.setPaint(gradient6); 
        g2D.fillRect(600,180,300,100); 
        g2D.setColor(bgd); 
        g2D.fill(areaRect2); 
        g2D.setColor(Color.black); 
        g2D.draw(areaOval); 
    } 
    private GradientPaint gradient1, gradient2, gradient3, gradient4, gradient5, gradient6; 
    private Rectangle rect2, rect1; 
    private Ellipse2D.Float oval; 
    private Area areaRect2, areaOval; 
    private BasicStroke stroke3; 
    private Color bgd; 
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Java2D: Gradientpaint Spiele- und Multimedia-Programmierung 2
lumo Java2D oder doch OpenglES Spiele- und Multimedia-Programmierung 4
windl CoverFlow in Java2D erstellt Spiele- und Multimedia-Programmierung 24
Kr0e Java2D - Was ist die bewährte Rendermethode ? Spiele- und Multimedia-Programmierung 2
E Wie rendert Java2D/AWT BufferedImages Spiele- und Multimedia-Programmierung 9
M Realisierung einer Sichtweise in Java2D Spiele- und Multimedia-Programmierung 3
S Java2D: AffineTransformation - KOS Spiegeln Spiele- und Multimedia-Programmierung 5
T Transformationen in Java2D Spiele- und Multimedia-Programmierung 6
B Texte in Java2d Spiele- und Multimedia-Programmierung 4
K Hardwarebeschleunigung für Java2D Spiele- und Multimedia-Programmierung 9
R Java2D-Komponenten Spiele- und Multimedia-Programmierung 6
A Java2D Spiel "JSlotter" Spiele- und Multimedia-Programmierung 3
H mit Java2D Markierung über JTable zeichnen und diese bewegen Spiele- und Multimedia-Programmierung 2
T Java2D Spiel, beim Hinzufügen eines Bildes ruckelt das ganze Spiele- und Multimedia-Programmierung 3
G SNES Mode7 mit Java2D? Spiele- und Multimedia-Programmierung 2
C Java2D Darstellungsfehler Spiele- und Multimedia-Programmierung 2
C OpenGl Support für Applet (sun.java2d.opengl=True) Spiele- und Multimedia-Programmierung 3
S [Java2D] Performance Frage Spiele- und Multimedia-Programmierung 4
V Java2D dynamische Kurven Spiele- und Multimedia-Programmierung 3
G Punkte des Kreises ausgeben (Java2D) Spiele- und Multimedia-Programmierung 4
K Java2d Bild als JPG oder so speichern Spiele- und Multimedia-Programmierung 10
F Spielzustände bei mehreren interagierenden Spielobjekten Spiele- und Multimedia-Programmierung 1
S [lwjgl] Renderbug bei mehreren Objekten Spiele- und Multimedia-Programmierung 2
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
R 2D Schwerkraft bei mehreren Platformen Spiele- und Multimedia-Programmierung 8
S Polygon bewegt sich nach mehreren aufrufen immer schneller Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen


Oben