GradientPaint демо



java.awt



import java.awt.BasicStroke;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.FontMetrics;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.geom.Arc2D;

import java.awt.geom.Ellipse2D;

import java.awt.geom.GeneralPath;

import java.awt.geom.Line2D;

import java.awt.geom.Rectangle2D;

import java.awt.geom.RoundRectangle2D;



import javax.swing.JApplet;

import javax.swing.JFrame;



public class GradientPaintDemo2D extends JApplet {



  public void init() {

    setBackground(Color.white);

    setForeground(Color.white);

  }



  public void paint(Graphics g) {

    Graphics2D g2 = (Graphics2Dg;

    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

        RenderingHints.VALUE_ANTIALIAS_ON);



    g2.setPaint(Color.gray);

    int x = 5;

    int y = 7;

    // fill RoundRectangle2D.Double

    GradientPaint redtowhite = new GradientPaint(x, y, Color.red, 200, y,

        Color.blue);

    g2.setPaint(redtowhite);

    g2.fill(new RoundRectangle2D.Double(x, y, 2002001010));

    g2.setPaint(Color.black);

    g2.drawString("Filled RoundRectangle2D", x, 250);



  }



  public static void main(String s[]) {

    JFrame f = new JFrame("");

    f.addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

        System.exit(0);

      }

    });

    JApplet applet = new GradientPaintDemo2D();

    f.getContentPane().add("Center", applet);

    applet.init();

    f.pack();

    f.setSize(new Dimension(300300));

    f.show();

  }

}

Цвет композитной



java.awt



import java.awt.AlphaComposite;

import java.awt.BasicStroke;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.TexturePaint;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.geom.Rectangle2D;

import java.awt.image.BufferedImage;



import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JSlider;

import javax.swing.JTextField;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;



public class ColorComposite extends JFrame {

  MyCanvas canvas;



  JTextField textField;



  float alphaValue = 0.65f;



  public ColorComposite() {

    super();

    Container container = getContentPane();



    canvas = new MyCanvas();

    container.add(canvas);



    JPanel panel = new JPanel();



    JLabel label = new JLabel("Color-Composite: ");



    JSlider slider = new JSlider(JSlider.HORIZONTAL, 010065);

    slider.addChangeListener(new ChangeListener() {

      public void stateChanged(ChangeEvent e) {

        JSlider tempSlider = (JSlidere.getSource();

        alphaValue = (float) (tempSlider.getValue() 100.0);

        textField.setText(Float.toString(alphaValue));

        canvas.repaint();

      }

    });



    textField = new JTextField("0.65"4);



    panel.add(label);

    panel.add(slider);

    panel.add(textField);



    container.add(BorderLayout.SOUTH, panel);



    addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

        System.exit(0);

      }

    });

    setSize(450,450);

    setVisible(true);

  }



  public static void main(String arg[]) {

    new ColorComposite();

  }



  class MyCanvas extends JLabel {

    Rectangle2D rec1, rec2, rec3, rec4, rec5;



    MyCanvas() {

      rec1 = new Rectangle2D.Float(252575150);

      rec2 = new Rectangle2D.Float(1252510075);

      rec3 = new Rectangle2D.Float(7512512575);

      rec4 = new Rectangle2D.Float(22512512575);

      rec5 = new Rectangle2D.Float(15050125175);



      setBackground(Color.white);

      setSize(400225);

    }



    public void paint(Graphics g) {

      Graphics2D g2D = (Graphics2Dg;



      AlphaComposite ac = AlphaComposite.getInstance(

          AlphaComposite.SRC_OVER, alphaValue);

      g2D.setComposite(ac);



      g2D.setStroke(new BasicStroke(5.0f));

      g2D.draw(rec1);



      GradientPaint gp = new GradientPaint(125f25f, Color.yellow, 225f,

          100f, Color.blue);

      g2D.setPaint(gp);

      g2D.fill(rec2);



      BufferedImage bi = new BufferedImage(55,

          BufferedImage.TYPE_INT_RGB);

      Graphics2D big = bi.createGraphics();

      big.setColor(Color.magenta);

      big.fillRect(0055);

      big.setColor(Color.black);

      big.drawLine(0055);

      Rectangle r = new Rectangle(0055);



      TexturePaint tp = new TexturePaint(bi, r);



      g2D.setPaint(tp);

      g2D.fill(rec3);



      g2D.setColor(Color.green);

      g2D.fill(rec4);

      g2D.setColor(Color.red);

      g2D.fill(rec5);

    }

  }

}

Как создать анимацию краска и нитки

Этот совет Java показывает, как создать простой анимации с использованием краски (график г) метод и нитки.



java.awt



import java.awt.Color;

import java.awt.Graphics;

import java.awt.Insets;

import java.util.Timer;

import java.util.TimerTask;



import javax.swing.JFrame;



public class Animate extends JFrame {



  private static int DELAY = 100;



  Insets insets;



  Color colors[] Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN,

      Color.BLUE, Color.MAGENTA };



  public void paint(Graphics g) {

    super.paint(g);

    if (insets == null) {

      insets = getInsets();

    }

    // Calculate each time in case of resize

    int x = insets.left;

    int y = insets.top;

    int width = getWidth() - insets.left - insets.right;

    int height = getHeight() - insets.top - insets.bottom;

    int start = 0;

    int steps = colors.length;

    int stepSize = 360 / steps;

    synchronized (colors) {

      for (int i = 0; i < steps; i++) {

        g.setColor(colors[i]);

        g.fillArc(x, y, width, height, start, stepSize);

        start += stepSize;

      }

    }

  }



  public void go() {

    TimerTask task = new TimerTask() {

      public void run() {

        Color c = colors[0];

        synchronized (colors) {

          System.arraycopy(colors, 1, colors, 0, colors.length - 1);

          colors[colors.length - 1= c;

        }

        repaint();

      }

    };

    Timer timer = new Timer();

    timer.schedule(task, 0, DELAY);

  }



  public static void main(String args[]) {

    Animate f = new Animate();

    f.setSize(200200);

    f.show();

    f.go();

  }

}

Имитации мыши и нажатия клавиш

В следующем примере показано, как моделировать мыши и нажатия клавиш в использовании Java java.awt.Robot класс.


try {

    Robot robot = new Robot();

    

    // Simulate a mouse click

    robot.mousePress(InputEvent.BUTTON1_MASK);

    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    

    // Simulate a key press

    robot.keyPress(KeyEvent.VK_A);

    robot.keyRelease(KeyEvent.VK_A);

catch (AWTException e) {

    e.printStackTrace();

}

Моделирования движения курсора на экране

Следующий пример показывает, как имитировать движения курсора помощью java.awt.Robot класс в Java. Основном, MouseMove метод используется с параметры, определяющие целевые точки, чтобы переместить курсор.


try {

    // These coordinates are screen coordinates

    int xCoord = 500;

    int yCoord = 500;

    

    // Move the cursor

    Robot robot = new Robot();

    robot.mouseMove(xCoord, yCoord);

catch (AWTException e) {

    e.printStackTrace();

}

Другой GradientPaint демо



java.awt



import java.awt.Color;

import java.awt.Dimension;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;



import javax.swing.JFrame;

import javax.swing.JPanel;



public class GradientPaintDemo extends JPanel {

  public void init() {

    setBackground(Color.white);

  }



  public void paint(Graphics g) {

    Graphics2D g2 = (Graphics2Dg;

    g2.setPaint(new GradientPaint(00, Color.lightGray, 200,

        200, Color.blue, false));

    Rectangle r = new Rectangle(5,5,200,200);

    g2.fill(r);

  }



  public static void main(String s[]) {

    JFrame f = new JFrame();

    f.addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

        System.exit(0);

      }

    });

    GradientPaintDemo p = new GradientPaintDemo();

    f.getContentPane().add("Center", p);

    p.init();

    f.pack();

    f.setSize(new Dimension(250250));

    f.show();

  }



}

Страница 5 из 5«12345