📄
字号:
PrintJob p=f.getToolkit().getPrintJob(f,"ok",null);
Graphics g=p.getGraphics();
g.drawRect(30,30,40,40);g.drawOval(20,80,30,30);
g.dispose(); p.end();
}
}
class Mycanvas extends Canvas
{ Mycanvas()
{ getSize();
}
public void paint(Graphics g)
{ g.drawRect(30,30,40,40); g.drawOval(20,80,30,30);
}
public Dimension getPreferredSize()
{return new Dimension(200,200); }
}
17-例子24
import java.awt.*;
import java.applet.*;
import java.awt.geom.*;
public class Example17_24 extends Applet
{ public void paint(Graphics g)
{g.setColor(Color.red) ;
Graphics2D g_2d=(Graphics2D)g; //把对象g强制转化为Graphinc2D对象。
Line2D line=new Line2D.Double(2,2,300,300);
g_2d.draw(line); //绘制直线。
}
}
17-例子25
import java.awt.*;import java.applet.*;
import java.awt.geom.*;
public class Example17_25 extends Applet
{ public void paint(Graphics g)
{g.setColor(Color.blue) ;
Graphics2D g_2d=(Graphics2D)g;
Rectangle2D rect=new Rectangle2D. Double (20,30,300,30);
g_2d.draw(rect);
}
}
17-例子26
import java.awt.*;import java.applet.*;
import java.awt.geom.*;
public class Example17_26 extends Applet
{ public void paint(Graphics g)
{g.setColor(Color.blue) ;
Graphics2D g_2d=(Graphics2D)g;
RoundRectangle2D
rect_round=new RoundRectangle2D. Double(20,30,100,130,7,5);
g_2d.draw(rect_round);
}
}
17-例子27
import java.awt.*;
import java.applet.*;
import java.awt.geom.*;
public class Example17_27 extends Applet
{ public void paint(Graphics g)
{g.setColor(Color.yellow) ;
Graphics2D g_2d=(Graphics2D)g;
Ellipse2D ellipse=new Ellipse2D. Double (20,30,100,50);
g_2d.draw(ellipse);
}
}
17-例子28
import java.awt.*;
import java.applet.*;
import java.awt.geom.*;
public class Example17_28 extends Applet
{ public void paint(Graphics g)
{g.setColor(Color.red) ;
Graphics2D g_2d=(Graphics2D)g;
Arc2D arc1=new Arc2D. Double (2,30,80,55,0,90,Arc2D.OPEN);
Arc2D arc2=new Arc2D. Double (90,30,90,70,0,180,Arc2D.CHORD);
Arc2D arc3=new Arc2D. Double (190,30,50,90,0,270,Arc2D.PIE);
g_2d.draw(arc1);g_2d.draw(arc2);g_2d.draw(arc3);
}
}
17-例子29
import java.awt.*;
import java.applet.*;
import java.awt.geom.*;
public class Example17_29 extends Applet
{ public void paint(Graphics g)
{g.setColor(Color.red) ;
Graphics2D g_2d=(Graphics2D)g;
QuadCurve2D curve_1=new QuadCurve2D.Double(2,30,80,55,20,90);
QuadCurve2D curve_2=new QuadCurve2D.Double(2,30,5,67,20,90);
QuadCurve2D curve_3=new QuadCurve2D.Double(2,30,54,67,20,90);
g_2d.draw(curve_1);g_2d.draw(curve_2);g_2d.draw(curve_3);
}
}
17-例子30
import java.awt.*;
import java.applet.*;
import java.awt.geom.*;
public class Example17_30 extends Applet
{ public void paint(Graphics g)
{g.setColor(Color.red) ;
Graphics2D g_2d=(Graphics2D)g;
CubicCurve2D curve_1=new CubicCurve2D.Double(2,30,80,55,10,10,20,90);
CubicCurve2D curve_2=new CubicCurve2D.Double(2,30,5,67,20,30,20,90);
CubicCurve2D curve_3=new CubicCurve2D.Double(30,35,54,67,20,90,100,190);
g_2d.draw(curve_1);g_2d.draw(curve_2);g_2d.draw(curve_3);
}
}
17-例子31
import java.awt.*;
import java.applet.*;
import java.awt.geom.*;
public class Example17_31 extends Applet
{ public void paint(Graphics g)
{Graphics2D g_2d=(Graphics2D)g;
BasicStroke bs_1
=new BasicStroke(8f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
BasicStroke bs_2
=new BasicStroke(8f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);
BasicStroke bs_3
=new BasicStroke(8f,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_ROUND);
Line2D line_1=new Line2D.Double(20,20,80,80);
Line2D line_2=new Line2D.Double(80,80,100,20);
Line2D line_3=new Line2D.Double(100,20,20,20);
g_2d.setStroke(bs_1); //设置线条。
g_2d.draw(line_1);
g_2d.setStroke(bs_2); //设置线条。
g_2d.draw(line_2);
g_2d.setStroke(bs_3); //设置线条。
g_2d.draw(line_3);
}
}
17-例子32
import java.awt.*;import java.applet.*;
import java.awt.geom.*;
public class Example17_32 extends Applet
{ public void paint(Graphics g)
{Graphics2D g_2d=(Graphics2D)g;
g_2d.setColor(Color.red);
Rectangle2D rect_1=new Rectangle2D.Double (20,30,30,50);
g_2d.fill(rect_1);
g_2d.setColor(Color.green);
Rectangle2D rect_2=new Rectangle2D.Double (60,30,30,50);
g_2d.fill(rect_2);
g_2d.setColor(Color.red);
Rectangle2D rect_3=new Rectangle2D.Double (100,30,30,50);
g_2d.fill(rect_3);
}
}
17-例子33
import java.awt.*;import java.applet.*;
import java.awt.geom.*;
public class Example17_33 extends Applet
{ public void paint(Graphics g)
{Graphics2D g_2d=(Graphics2D)g;
GradientPaint gradient_1
=new GradientPaint(0,0,Color.red,50,50,Color.green,false);
g_2d.setPaint(gradient_1);
Rectangle2D rect_1=new Rectangle2D.Double (20,30,30,50);
g_2d.fill(rect_1);
GradientPaint gradient_2
=new GradientPaint(0,50,Color.white,150,50,Color.red,false);
g_2d.setPaint(gradient_2);
Rectangle2D rect_2=new Rectangle2D.Double (70,30,30,50);
g_2d.fill(rect_2);
GradientPaint gradient_3
=new GradientPaint(50,0,Color.blue,50,50,Color.white,true);
g_2d.setPaint(gradient_3);
Rectangle2D rect_3=new Rectangle2D.Double (140,30,30,50);
g_2d.fill(rect_3);
}
}
17-例子34
import java.awt.*;import java.applet.*;
import java.awt.geom.*;
public class Example17_34 extends Applet
{ public void paint(Graphics g)
{Graphics2D g_2d=(Graphics2D)g;
QuadCurve2D curve
=new QuadCurve2D.Double(100,100,80,55,20,50);
g_2d.setColor(Color.pink);
AffineTransform trans=new AffineTransform();
for(int i=1;i<=12;i++)
{ trans.rotate(-30.0*i*3.1415927/180,100,100);
g_2d.setTransform(trans);
g_2d.draw(curve); //现在画的就是旋转后的二次曲线样子。
}
}
}
17-例子35
import java.awt.*;import java.awt.geom.*;
import java.awt.event.*;
public class Example17_35
{public static void main(String args[])
{ Frame f=new Frame(); f.setBounds(100,100,350,370);f.setVisible(true);
Mycanvas canvas=new Mycanvas();f.add(canvas,"Center");f.pack();
f.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0); }
});
}
}
class Mycanvas extends Canvas
{ Mycanvas()
{ getSize();
}
public void paint(Graphics g)
{ Graphics2D g_2d=(Graphics2D)g;
BasicStroke bs
=new BasicStroke(4f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);
g_2d.setStroke(bs);
QuadCurve2D curve
=new QuadCurve2D.Double(100,100,200,55,20,50);
g_2d.setColor(Color.blue);
AffineTransform trans=new AffineTransform();
for(int i=1;i<=12;i++)
{ trans.rotate(-30.0*i*3.1415927/180,100,100);
g_2d.setTransform(trans);
g_2d.draw(curve);
}
}
public Dimension getPreferredSize()
{return new Dimension(300,300); }
}
17-例子36
import java.awt.*;import java.awt.event.*;
import java.awt.geom.*;import java.applet.*;
public class Flower extends Applet
{ public void paint(Graphics g)
{ Graphics2D g_2d=(Graphics2D)g;
//绘制花叶两边的曲线:
QuadCurve2D
curve_1=new QuadCurve2D.Double(200,200,150,160,200,100);
CubicCurve2D curve_2=
new CubicCurve2D.Double(200,200,260,145,190,120,200,100);
//绘制花叶中的纹线:
Line2D line=new Line2D.Double(200,200,200,110);
QuadCurve2D leaf_line1=
new QuadCurve2D.Double(200,180,195,175,190,170);
QuadCurve2D leaf_line2=
new QuadCurve2D.Double(200,180,210,175,220,170);
QuadCurve2D leaf_line3=
new QuadCurve2D.Double(200,160,195,155,190,150);
QuadCurve2D leaf_line4=
new QuadCurve2D.Double(200,160,214,155,220,150);
//利用旋转来绘制花朵:
AffineTransform trans=new AffineTransform();
for(int i=0;i<6;i++)
{trans.rotate(60*Math.PI/180,200,200);
g_2d.setTransform(trans);
GradientPaint gradient_1=
new GradientPaint(200,200,Color.green,200,100,Color.yellow);
g_2d.setPaint(gradient_1);
g_2d.fill(curve_1);
GradientPaint gradient_2=new
GradientPaint(200,145,Color.green,260,145,Color.red,true);
g_2d.setPaint(gradient_2);
g_2d.fill(curve_2);
Color c3=new Color(0,200,0); g_2d.setColor(c3);
g_2d.draw(line);
g_2d.draw(leaf_line1); g_2d.draw(leaf_line2);
g_2d.draw(leaf_line3); g_2d.draw(leaf_line4);
}
//花瓣中间的花蕾曲线:
QuadCurve2D center_curve_1=
new QuadCurve2D.Double(200,200,190,185,200,180);
AffineTransform trans_1=new AffineTransform();
for(int i=0;i<12;i++)
{trans_1.rotate(30*Math.PI/180,200,200);
g_2d.setTransform(trans_1);
GradientPaint gradient_3=
new GradientPaint(200,200,Color.red,200,180,Color.yellow);
g_2d.setPaint(gradient_3);
g_2d.fill(center_curve_1);
}
//再绘制一个0.4倍的花朵:
AffineTransform trans_2=new AffineTransform();
trans_2.scale(0.4,0.4);
for(int i=0;i<6;i++)
{ trans_2.rotate(60*Math.PI/180,200,200);
g_2d.setTransform(trans_2);g_2d.setColor(Color.pink);
g_2d.fill(curve_1);g_2d.setColor(Color.green);
g_2d.fill(curve_2);
}
}
}
17-例子 37
import java.awt.*;import java.applet.*;
public class PaintTest extends Applet
{public void init()
{setBackground(Color.yellow);}
public void paint(Graphics g)
{g.setXORMode(Color.red);//设置XOR绘图模式。
g.setColor(Color.green);
g.fillRect(20,20,80,40);//矩形的实际颜色是green+yellow的混合色:灰色。
g.setColor(Color.yellow);
g.fillRect(60,20,80,40);//该矩形的前一半是yellow+yellow+灰色=red+灰色,
//后一半是红色。
g.setColor(Color.green);
g.fillRect(20,70,80,40);//矩形的实际颜色是green+yellow的混合色:灰色。
g.fillRect(60,70,80,40);// 该矩形的前一半是green+yellow+灰色=背景色,
// 后一半是green+yellow:灰色。
g.setColor(Color.green);
g.drawLine(100,100,200,200);//该直线是green+yellow:灰色。
//下面,在同一位置再绘制该直线,因此,该直线前半段是green+yellow+灰色=
灰色+灰色=背景色,该直线后半段是green+yellow=灰色:
g.drawLine(100,100,220,220);
//仔细分析下列直线颜色的变化:
g.setColor(Color.yellow);
g.drawLine(20,30,160,30);
g.drawLine(20,75,160,75);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -