前言:

在Java可视化领域内,java提供了很多画图功能,这些功能可以通过子类父类继承关系,扩展利用这些功能,画出我们想要的图形。

如果对子类父类关系模糊,可以看:JAVA 子类,父类的理解(美妙的树形关系)


1. java提供的一些画图类:

JFrame ---- 画框

JPanel ---- 画板

Graphics ---- 画笔

在这里插入图片描述

就像正常画画一样,利用这些类进行绘画。


2. 利用画笔,在画板中画出圆:

需要创建一个MyPane继承JPanel类内的一些功能,再利用画笔Graphics类在其中画图即可

代码如下:

class MyPanel extends JPanel{//利用画板画图。
	
	public void paint(Graphics g) {//要扩展父类某个方法,这个方法名字不能改动(系统自动调用)
		super.paint(g);//继承父类的优良方法。
		
		//扩展新内容
		g.drawOval(10, 10, 100, 100);//画圆
	}
	
}

其中drawOval是从父类继承过来的画圆函数,绘画逻辑如下:

在这里插入图片描述
注意: paint方法名字不能改,其由Java底层逻辑自己调用,改了名字无法调用,也就没有图。

代码如下:


class MyPanel extends JPanel{//利用画板画图。
	
	public void paint(Graphics g) {//要扩展父类某个方法,这个方法名字不能改动(系统自动调用)
		super.paint(g);//继承父类的优良方法。
		
		//扩展新内容
		g.drawOval(10, 10, 100, 100);//画圆
	}
	
}

3. 将画完圆的画板安置在画框内:

代码:

import java.awt.Graphics;
import java.util.*;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JFrame{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Main();//建立一个Main类对象
        }
       
	public Main() {//构造器
		MyPanel mp = new MyPanel();
		this.add(mp);//将画板镶嵌在画框中
		this.setSize(400, 400);//画框大小(像素)
		this.setVisible(true);//允许可视化
	}

}

安置过程是在Main类构造器内实现。


4. 完整代码:

完整代码如下:

import java.awt.Graphics;
import java.util.*;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JFrame{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Main();//建立一个Main类对象
        }
       
	public Main() {//构造器
		MyPanel mp = new MyPanel();
		this.add(mp);//将画板镶嵌在画框中
		this.setSize(400, 400);//画框大小(像素)
		this.setVisible(true);//允许可视化
	}

}

class MyPanel extends JPanel{//利用画板画图。
	
	public void paint(Graphics g) {//要扩展父类某个方法,这个方法名字不能改动(系统自动调用)
		super.paint(g);//继承父类的优良方法。
		
		//扩展新内容
		g.drawOval(10, 10, 100, 100);//画圆
	}
	
}

效果:

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐