String gradient paint : Gradient Paint « 2D Graphics « Java Tutorial






String gradient paint
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class StringGraidentPaint extends JFrame {
  public StringGraidentPaint() {
    getContentPane().add(new DrawingCanvas());
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(500, 500);
    setVisible(true);
  }

  public static void main(String arg[]) {
    new StringGraidentPaint();
  }
}

class DrawingCanvas extends JPanel {
  Font font = new Font("Dialog", Font.BOLD, 40);
  FontMetrics fontMetrics;
  
  DrawingCanvas() {
    setSize(300, 300);
    setBackground(Color.white);
    fontMetrics = getFontMetrics(font);
  }

  public void paint(Graphics g) {
    Graphics2D g2D = (Graphics2D) g;
    int w = getSize().width;
    int h = getSize().height;

    g2D.setFont(font);
    GradientPaint gp = new GradientPaint(
                            30.0f, 50.0f,
                            Color.blue,
                            fontMetrics.stringWidth("Hello!"),
                            fontMetrics.getHeight(),
                            Color.red);             
    g2D.setPaint(gp);
    g2D.drawString("Hello!", 20,200);                                                 


  }
}








16.18.Gradient Paint
16.18.1.Gradients: a smooth blending of shades from light to dark or from one color to another
16.18.2.Control the direction of Gradients
16.18.3.Horizontal Gradients
16.18.4.Vertical Gradient Paint
16.18.5.Gradients in the middle
16.18.6.Cyclic Gradient PaintCyclic Gradient Paint
16.18.7.Acyclic Gradient PaintAcyclic Gradient Paint
16.18.8.String gradient paintString gradient paint
16.18.9.A non-cyclic gradient
16.18.10.Drawing with a Gradient Color