博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小博老师解析Java核心技术 ——JSwing绘图技术
阅读量:5951 次
发布时间:2019-06-19

本文共 1634 字,大约阅读时间需要 5 分钟。

hot3.png

[引言]

我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的绘图技术,今天主要讲解绘图技术的基本使用方式。

 

[步骤阅读一]绘图技术基础知识

中的绘图技术,主要指的是通过代码在界面中绘制图形,因为有的时候我们需要的图形并不是一成不变的,它可能随着数据、时间、环境等各类因素而随时改变,比如验证码、头像截图、占比饼图、数据柱状图、水印图片等等场景。因此我们不能在界面中显示某张固定的现成图片,而是要根据需要使用算法绘制一张临时图片。

中的绘图技术主要使用java.awt.Graphics类来实现,其中封装了很多我们经常需要使用的绘图方法。

[步骤阅读二]基本绘图方法使用

在JSwing窗体中的各类控件,都拥有一个方法:

void paintComponent(Graphics g)

这个方法是控件绘制界面时的调用方法,其中参数Graphics就是界面传递过来的绘图对象。我们可以在这个方法中利用绘图对象绘制我们想要的图形。

接下来就为大家演示一下绘制直线的方式,核心代码如下:

public class GraphicFrame extends JFrame{

public GraphicFrame(){

super("博为峰教育");

setBounds(200, 100, 600, 400);

setLayout(null);

// 实例化 自定义Panel派生类对象

panel = new BWFPanel();

panel.setBounds(0, 0, 585, 362);

add(panel);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private BWFPanel panel;

}

 

public class BWFPanel extends JPanel{

// 重写 绘制界面方法

protected void paintComponent(Graphics g) {

super.paintComponent(g);

// 设置 笔触颜色

g.setColor(Color.RED);

// 绘制 直线

g.drawLine(0, 0, 100, 200);

}

}

实例化窗体对象并且运行后,效果如下:

接下小博老师再给大家演示一下如何绘制矩形,核心代码如下:

public class BWFPanel extends JPanel{

// 重写 绘制界面方法

protected void paintComponent(Graphics g) {

super.paintComponent(g);

// 设置 笔触颜色

g.setColor(Color.RED);

// 描边 矩形

g.drawRect(50, 50, 200, 200);

// 填充 矩形

g.fillRect(280, 50, 200, 200);

}

}

 

实例化窗体对象并且运行后,效果如下:

最后再给大家演示一下如何绘制圆形,核心代码如下:

public class BWFPanel extends JPanel{

// 重写 绘制界面方法

protected void paintComponent(Graphics g) {

super.paintComponent(g);

// 设置 笔触颜色

g.setColor(Color.RED);

// 描边 圆形

g.drawOval(50, 50, 200, 200);

// 填充 圆形

g.fillOval(280, 50, 200, 200);

}

}

 

实例化窗体对象并且运行后,效果如下:

转载于:https://my.oschina.net/u/2971691/blog/819495

你可能感兴趣的文章
icinga2使用check_snmp_idrac.py监控DELL硬件状态
查看>>
Java基础学习21(代码块)
查看>>
陈松松:无需懂任何视频制作技术,就能做出让客户感觉专业的视频
查看>>
转:用Windows Live Writer在51CTO写博客
查看>>
rsync+ssh的无验证登录
查看>>
我的友情链接
查看>>
ganglia client
查看>>
计算机基础与java
查看>>
ajax的刷与不刷
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
Java基础学习总结(14)——Java对象的序列化和反序列化
查看>>
linux系统管理---账号与权限管理
查看>>
我的友情链接
查看>>
Android Target unknown and state offline
查看>>
润乾报表使用EXCEL数据源的方法及改进
查看>>
java并发编程基础
查看>>
我的DOS命令路径定义错了
查看>>
应用SELinux中的目标策略限制进程运行
查看>>
html5页面点击和左右滑动页面滚动
查看>>
事情的两面性
查看>>