作业帮 > 综合 > 作业

JAVA画图形定义一个抽象的图形类,并在该类中定义一个抽象的绘图方法.然后定义3个具体的图形子类,分别是方型、圆形和三角

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/22 19:38:50
JAVA画图形
定义一个抽象的图形类,并在该类中定义一个抽象的绘图方法.然后定义3个具体的图形子类,分别是方型、圆形和三角形,并在每个子类中分别实现各自的绘图方法.
望高手指点一下.
JAVA画图形定义一个抽象的图形类,并在该类中定义一个抽象的绘图方法.然后定义3个具体的图形子类,分别是方型、圆形和三角
1.定义抽象类AbstractImage
import java.awt.Graphics;
public abstract class AbstractImage {
public abstract void draw(Graphics g);
}
2.(示例)定义正方形类
import java.awt.*;
public class Rec extends AbstractImage {
/*
* 1.定义正方形左上顶点的坐标(x,y)
* 2.定义正方形的宽为width,高为height
* 3.写构造方法,setter getter方法
* */
private int x;
private int y;
private int width;
private int height;
public Rec(){
}
public Rec(int x,int y,int width,int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
//重写draw方法:正方形的draw方法
public void draw(Graphics g) {
Color c=g.getColor();//获得窗口的前景色
g.setColor(Color.BLUE);//设置正方形的前景色
g.fillRect(x,y,width,height);//画出正方形
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}
3.定义一个测试类,有main方法
在这个测试类中定义一个窗口(lanchFrame方法 会自动调用paint方法 paint方法里调用正方形的draw方法),到时我们要在这个窗口里画出正方形
import java.awt.*;
import java.awt.event.*;
public class Test extends Frame{
//定义窗口的大小为常量
private static final int GAME_WIDTH = 800;
private static final int GAME_HEIGHT = 600;
public static void main(String [] args){
Test t =new Test();
t.lanchFrame();
}
private void lanchFrame() {
this.setLocation(400,300);//设置窗口的位置(以屏幕的左上角为基准)
this.setSize(GAME_WIDTH,GAME_HEIGHT);//设置窗口的大小
this.setTitle("画图测试");
//匿名类实现关闭窗口
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.setResizable(false);//设置窗口不可以改变大小
this.setBackground(Color.GREEN);//设置窗口的背景色为绿色
setVisible(true);//设置窗口可见
}
public void paint(Graphics g){
//在这里实例化正方形类,并调用它的draw方法
Rec rec=new Rec(150,150,200,200);//在实例化的时候就可以指定正方形的大小
rec.draw(g);//这里把paint方法中的画笔g传递给正方形的draw方法
}
}
//其他两个图形也一样,画圆用的是画笔g的fillOval()方法
4.运行测试
在硬盘上建个文件夹,如E:\test\ 在这个文件夹下把这三个文件都放进去
在dos下编译测试:
javac Test.java
java Test
如果实在IDE中测试,那我就不多说了.
5.总结:
【1】先画出窗口lanchFrame,并设置窗口的属性,如大小、可见、不可以随意改动大小、位置、可以通过关闭按钮关闭窗口
【2.】在窗口中画出想要画的图形,lanchFrame自动调用paint方法,在paint方法中调用具体图形的draw方法.