JAVA画图形定义一个抽象的图形类,并在该类中定义一个抽象的绘图方法.然后定义3个具体的图形子类,分别是方型、圆形和三角形,并在每个子类中分别实现各自的绘图方法.望高手指点一下.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 17:36:23
![JAVA画图形定义一个抽象的图形类,并在该类中定义一个抽象的绘图方法.然后定义3个具体的图形子类,分别是方型、圆形和三角形,并在每个子类中分别实现各自的绘图方法.望高手指点一下.](/uploads/image/z/3249135-63-5.jpg?t=JAVA%E7%94%BB%E5%9B%BE%E5%BD%A2%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E6%8A%BD%E8%B1%A1%E7%9A%84%E5%9B%BE%E5%BD%A2%E7%B1%BB%2C%E5%B9%B6%E5%9C%A8%E8%AF%A5%E7%B1%BB%E4%B8%AD%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E6%8A%BD%E8%B1%A1%E7%9A%84%E7%BB%98%E5%9B%BE%E6%96%B9%E6%B3%95.%E7%84%B6%E5%90%8E%E5%AE%9A%E4%B9%893%E4%B8%AA%E5%85%B7%E4%BD%93%E7%9A%84%E5%9B%BE%E5%BD%A2%E5%AD%90%E7%B1%BB%2C%E5%88%86%E5%88%AB%E6%98%AF%E6%96%B9%E5%9E%8B%E3%80%81%E5%9C%86%E5%BD%A2%E5%92%8C%E4%B8%89%E8%A7%92%E5%BD%A2%2C%E5%B9%B6%E5%9C%A8%E6%AF%8F%E4%B8%AA%E5%AD%90%E7%B1%BB%E4%B8%AD%E5%88%86%E5%88%AB%E5%AE%9E%E7%8E%B0%E5%90%84%E8%87%AA%E7%9A%84%E7%BB%98%E5%9B%BE%E6%96%B9%E6%B3%95.%E6%9C%9B%E9%AB%98%E6%89%8B%E6%8C%87%E7%82%B9%E4%B8%80%E4%B8%8B.)
JAVA画图形定义一个抽象的图形类,并在该类中定义一个抽象的绘图方法.然后定义3个具体的图形子类,分别是方型、圆形和三角形,并在每个子类中分别实现各自的绘图方法.望高手指点一下.
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方法.