Java Tutorial/2D Graphics/Stroke
Версия от 17:44, 31 мая 2010; (обсуждение)
A dashed stroke
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class BasicDraw {
public static void main(String[] args) {
new BasicDraw();
}
BasicDraw() {
JFrame frame = new JFrame();
frame.add(new MyComponent());
frame.setSize(300, 300);
frame.setVisible(true);
}
}
class MyComponent extends JComponent {
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
float strokeThickness = 5.0f;
float miterLimit = 10f;
float[] dashPattern = { 10f };
float dashPhase = 5f;
BasicStroke stroke = new BasicStroke(strokeThickness, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER,
miterLimit, dashPattern, dashPhase);
g2d.setStroke(stroke);
g2d.draw(new Rectangle(20,20,200,200));
}
}
Changing the Thickness of the Stroking Pen
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class BasicDraw {
public static void main(String[] args) {
new BasicDraw();
}
BasicDraw() {
JFrame frame = new JFrame();
frame.add(new MyComponent());
frame.setSize(300, 300);
frame.setVisible(true);
}
}
class MyComponent extends JComponent {
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
float strokeThickness = 5.0f;
BasicStroke stroke = new BasicStroke(strokeThickness);
g2d.setStroke(stroke);
g2d.draw(new Rectangle(20,20,200,200));
}
}
Stroking or Filling with a Texture
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.TexturePaint;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class BasicDraw {
public static void main(String[] args) {
new BasicDraw();
}
BasicDraw() {
JFrame frame = new JFrame();
frame.add(new MyComponent());
frame.setSize(300, 300);
frame.setVisible(true);
}
}
class MyComponent extends JComponent {
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
int x = 10;
int y = 10;
int width = 50;
int height = 25;
BufferedImage bi = new BufferedImage(20,20,BufferedImage.TYPE_INT_RGB);
TexturePaint texture = new TexturePaint(bi, new Rectangle(x, y, width, height));
g2d.setPaint(texture);
}
}