2019独角兽企业重金招聘Python工程师标准>>>
[引言]
我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的绘图技术,今天主要讲解绘图技术的基本使用方式。
[步骤阅读一]绘图技术基础知识
Java中的绘图技术,主要指的是通过代码在界面中绘制图形,因为有的时候我们需要的图形并不是一成不变的,它可能随着数据、时间、环境等各类因素而随时改变,比如验证码、头像截图、占比饼图、数据柱状图、水印图片等等场景。因此我们不能在界面中显示某张固定的现成图片,而是要根据需要使用算法绘制一张临时图片。
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);
}
}
实例化窗体对象并且运行后,效果如下: