Java绘图技术的详解及实例

本文深入解析Java绘图技术,通过具体实例演示如何使用Graphics类进行绘图,包括画圆、直线、矩形,设置颜色,填充图形,显示图片和文字等。同时介绍了Component类的paint和repaint方法,以及Graphics类的基本用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java绘图技术的详解及实例

简单实例

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

public class Demo1 extends JFrame{

  MyPanel mp=null;

   

  public static void main(String[] args){

    Demo1 demo=new Demo1();

  }

   

  public Demo1(){

    mp=new MyPanel();

    this.add(mp);

    this.setSize(400,300);

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    this.setVisible(true);

  }

}

//定义一个MyPanel(我自己的面板,是用于绘图和显示绘图的区域)

class MyPanel extends JPanel{

  //覆盖JPanel的paint方法

  public void paint(Graphics g){    //Graphics是绘图的重要类,可以理解成一只画笔

    //1、调用父类函数完成初始化(不可少)

    super.paint(g);

//    System.out.println("paint被调用");

    g.drawOval(10, 10, 30, 30);     //先画出一个圆

    g.drawLine(10, 10,40, 40);    // 画直线

    g.drawRect(10, 10, 40, 60);    //画矩形边框

     

    g.setColor(Color.BLUE);      //设置颜色

    g.fillRect(70, 70, 40, 60);    //填充矩形

     

    g.setColor(Color.gray);

    g.fillRect(150, 150, 30,40);

     

    //在面板上画出图片

    Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/imag_1"));

    g.drawImage(im, 200, 200, 200, 150, this); //显示

    //画出字体

    g.setColor(Color.GREEN);

    g.setFont(new Font("隶书",Font.BOLD,30));

    g.drawString("祖国万岁!", 100, 80);

     

  }

}

1、Component类提供了两个和绘图相关最重要的方法

1)paint(Graphics g)绘制组件外观

2)repaint()刷新组件的外观

当组件第一次在屏幕显示时,程序会自动的调用paint()方法来绘制组件。

2、关于Graphics类

运行效果如下:

以上就是Java绘图技术的详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Java中的Canvas绘图源码实例,主要是画线条、弧线、圆角矩形、三角形、文字、圆形等简单的几何图形,主要是通过创建DrawingCanvas对象canvas,为canvas设置命令监听者,实现接口CommandListener的方法,把缓冲区图像的内容绘制到画布上,画图部分代码:   int w = getWidth(); // 画布的宽度   int h = getHeight(); // 画布的高度   Image buffer = Image.createImage(w, h); // 用于绘图的缓冲图像   Graphics gc = buffer.getGraphics(); // 获取缓冲图像的图形环境   // 清除画布   public void clearScreen() {    gc.setColor(255,255,255); // 设置绘图颜色为白色    gc.fillRect(0,0,w,h); // 把缓冲图像填充为白色    gc.setColor(255,0,0); // 设置绘图颜色为红色   }   // 绘制直线   public void drawLine() {    setTitle("直线"); // 设置画布的标题    clearScreen(); // 清除画布    gc.drawLine(10,10,w-20,h-20); // 绘制黑色直线    gc.setColor(0,0,255); // 设置绘图颜色为蓝色    gc.drawLine(10,h/2,w-10,h/2); // 绘制蓝色直线   }   // 绘制弧   public void drawArc() {    setTitle("弧线和填充弧");    clearScreen();    gc.drawArc(5,5,w/2-20,h/2-20,60,216); // 绘制弧线    gc.drawArc(5,h/2-10,w/2-20,h/2-20,0,360); // 绘制圆    gc.setColor(0,0,255);    gc.fillArc(w/2,5,w/2-20,h/2-20,60,216); // 绘制填充弧线    gc.fillArc(w/2,h/2-10,w/2-20,h/2-20,0,360); // 绘制填充圆   }   // 绘制矩形   public void drawRect() {    setTitle("矩形和填充矩形");    clearScreen();    gc.drawRect(25,25,w/2-30,h/2-30); // 绘制矩形    gc.fillRect(w/2 25,25,w/2-30,h/2-30); // 绘制填充矩形   }   // 绘制圆角矩形   public void drawRoundRect() {    setTitle("圆角矩形和填充圆角矩形");    clearScreen();    gc.drawRoundRect(5,5,w-5-30,h/2-30,20,20); // 绘制圆角矩形    gc.setColor(0,0,255);    gc.fillRoundRect(5,h/2,w-30,h/2-30,20,20); // 绘制填充圆角矩形   }   // 绘制三角形   public void drawTriangle() {    setTitle("填充三角形");    clearScreen();    gc.fillTriangle(w/2, h/6, w/6, h/2, w/2, h/2);   }   // 绘制文字   public void drawText() {    setTitle("文字"); //设置标题    clearScreen();    gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_SMALL)); // 设置字体    gc.drawString("Hello World!",0,0,gc.TOP|gc.LEFT); // 使用当前字体绘制文字    gc.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD|Font.STYLE_UNDERLINED,Font.SIZE_LARGE));    gc.drawString("Hello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值