drawLine(int x1,int y1,int x2,int y2)
g.drawLine(3,3,50,50);//画一条线段 g.drawLine(100,100,100,100);//画一个点。
g.drawRect(80,100,40,25);//画线框 g.setColor(Color.yellow);g.fillRect(20,70,20,30);//画着色块
g.drawRoundRect(10,10,150,70,40,25);//画一个圆角矩形 g.setColor(Color.blue); g.fillRoundRect(80,100,100,100,60,40);//涂一个圆角矩形块 g.drawRoundRect(10,150,40,40,40,40);//画圆 g.setColor(Color.red); g.fillRoundRect(80,100,100,100,100,100);//画圆块
g.draw3DRect(80,100,40,25,true);//画一个线框 g.setColor(Color.yellow); g.fill3DRect(20,70,20,30,true);//画一个着色块
g.drawOval(10,10,60,120);//画椭圆 g.setColor(Color.cyan);g.fillOval(100,30,60,60);//涂圆块 g.setColor(Color.magenta);g.fillOval(15,140,100,50);//涂椭圆
g.drawArc(10,40,90,50,0,180);//画圆弧线 g.drawArc(100,40,90,50,180,180);//画圆弧线 g.setColor(Color.yellow); g.fillArc(10,100,40,40,0,-270);//填充缺右上角的四分之三的椭圆 g.setColor(Color.green); g.fillArc(60,110,110,60,-90,-270);//填充缺左下角的四分之三的椭圆
int px1[]={50,90,10,50};//首末点相重,才能画多边形
int py1[]={10,50,50,10};
int px2[]={140,180,170,180,140,100,110,140};
int py2[]={5,25,35,45,65,35,25,5};
g.setColor(Color.blue);
g.fillPolygon(px1,py1,4);
g.setColor(Color.red);
g.drawPolygon(px2,py2,9);
int x[]={140,180,170,180,140,100,110,100};
int y[]={5,25,35,45,65,45,35,25};
Polygon ponlygon1=new Polygon();
polygon1.addPoint(50,10);
polygon1.addPoint(90,50);
polygon1.addPoint(10,50);
g.drawPolygon(polygon1);
g.setColor(Color.yellow);
Polygon polygon2 = new Polygon(x,y,8);
g.fillPolygon(polygon2);
g.setColor(Color.blue); g.fillOval(50,50,100,100);g.clearRect(70,70,40,55);
g.clipRect(0,0,100,50);g.clipRect(50,25,100,50);
g.clipRect(50,25,50,25);
g.drawRect(10,10,60,90); g.fillRect(90,10,60,90); g.copyArea(40,50,60,70,-20,80); g.copyArea(110,50,60,60,10,80);
import java.applet.*;
import java.awt.*;
public class Example7_3 extends Applet{
int i=1;
public void init(){
setBackground(Color.yellow);
}
public void paint(Graphics g){
i = i+8; if(i>160)i=1;
g.setColor(Color.red);g.fillRect(i,10,20,20);
g.drawString("我正学习update()方法",100,100);
try{
Thread.sleep(100);
}
catch(InterruptedException e){}
repaint();
}
public void update(Graphics g){
g.clearRect(i,10,200,100);//不清除"我正在学习update()方法"
paint(g);
}
}
一般的绘图程序要继承JFrame,定义一个JFrame窗口子类,还要继承JPanel,定义一个JPanel子类。在JPanel子类 中重定义方法paintComponent(),在这个方法中调用绘图方法,绘制各种图形。
【例】使用XOR绘图模式的应用程序。
import javax.swing.*;
import java.awt.*;
public class Example7_4 extends JFrame{
public static void main(String args[]){
GraphicsDemo myGraphicsFrame = new GraphicsDemo();
}
}
class ShapesPanel extends JPanel{
SharpesPanel(){
setBackground(Color.white);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
setBackground(Color.yellow); //背景色为黄色
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=read,前一半是yellow+灰色
g.setColor(Color.green);
g.fillRect(20, 70, 80, 40); //实际颜色是green+yellow的混合色=灰色.
g.fillRect(60, 70, 80, 40);
//前一半是(green+yellow)+gray =背景色,后一半是green+yellow = gray
g.setColor(Color.green);
g.drawLine(80, 100, 180, 200); //该直线是green+yellow = gray
g.drawLine(100, 100, 200, 200); //同上
/*再绘制部分重叠的直线.原直线中间段是灰色+灰色=背景色,延长部分是green+yellow=gray.*/
g.drawLine(140, 140, 220, 220);
g.setColor(Color.yellow); //分析下列直线颜色变化,与早先的力有重叠
g.drawLine(20, 30, 160, 30);
g.drawLine(20, 75, 160, 75);
}
}
class GraphicsDemod extends JFrame{
public GraphicsDemo(){
this.getContentPane().add(new ShapesPanel());
setTile("基本绘图方法演示");
setSize(300, 300);
setVisible(true);
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有