package lr6;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
public class GradientFrame extends JFrame {
GradientFrame(String s) {
super(s);
setLayout(null);
setSize(480, 420);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setPaint(new GradientPaint(20.0f, 20.0f, Color.YELLOW,
200.0f, 20.0f, Color.BLUE));
g2d.fill(new Rectangle2D.Float(20.0f, 20.0f, 200.0f, 100.0f));
g2d.setPaint(new GradientPaint(20.0f, 170.0f, Color.YELLOW,
106.0f, 170.0f, Color.BLUE, true));
g2d.fill(new Rectangle2D.Float(20.0f, 170.0f, 440.0f, 50.0f));
BufferedImage b = new BufferedImage(20, 20, BufferedImage.TYPE_INT_RGB);
Graphics2D gb = b.createGraphics();
gb.setPaint(new GradientPaint(0.0f, 0.0f, Color.YELLOW,
20.0f, 20.0f, Color.BLUE));
gb.fillRect(0, 0, 20, 20);
gb.dispose();
TexturePaint tp = new TexturePaint(b, new Rectangle2D.Float(0.0f, 0.0f, 20.0f, 20.0f));
g2d.setPaint(tp);
g2d.fill(new Rectangle2D.Float(260.0f, 20.0f, 200.0f, 100.0f));
float[] base = {0.0f, 0.5f, 1.0f};
Color[] colors = {Color.YELLOW, Color.BLUE, Color.GREEN};
LinearGradientPaint lgrd = new LinearGradientPaint(35.0f, 270.0f,
200.0f, 270.0f,
base, colors);
g2d.setPaint(lgrd);
g2d.fill(new Rectangle2D.Float(20.0f, 270.0f, 200.0f, 100.0f));
RadialGradientPaint rgrd = new RadialGradientPaint(310.0f, 320.0f,
50.0f, base, colors);
g2d.setPaint(rgrd);
g2d.fill(new Ellipse2D.Float(260.0f, 270.0f, 100.0f, 100.0f));
g2d.setPaint(Color.BLACK);
g2d.setFont(new Font("Lucida Console", Font.PLAIN, 16));
g2d.drawString("Заливка градиентом", 20, 145);
g2d.drawString("Заливка текстурой", 260, 145);
g2d.drawString("Циклическая заливка градиентом", 20, 245);
g2d.drawString("LinearGradientPaint", 20, 395);
g2d.drawString("RadialGradientPaint", 260, 395);
}
public static void main(String[] args) {
new GradientFrame("Градиенты и текстуры Java2D");
}
}