题目
定义4个类,MyShape、MyLine、MyRectangle和MyOval,其中MyShape是其他三个类的父类。MyShape为抽象类,包括图形位置的四个坐标;一个无参的构造方法,将所有的坐标设置为0;一个带参的构造函数,将所有的坐标设置为相应值;每个坐标的设置和读取方法;abstract void draw(Graphics g)方法。MyLine类负责画直线,实现父类的draw方法;MyRectangle负责画矩形,实现父类的draw方法;MyOval负责画椭圆,实现父类的draw方法。编写一个应用程序,使用上面定义的类,随机选取位置和形状,绘制20个图形。
代码
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class shapeDrawing {
//固定套路
public static void main(String[] args)
{
DrawFrame frame=new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
//JFrame创建窗体
class DrawFrame extends JFrame
{
public DrawFrame()
{
setTitle("Shapes");
setSize(400,400);
//窗体中加入面板
DrawPanel panel = new DrawPanel();
add(panel);
}
}
//JPanel在面板中显示信息
class DrawPanel extends JPanel
{
//重写paintComponent方法
public void paintComponent(Graphics g)
{
super.paintComponent(g);
MyShape s;
double c1,c2,c3,c4;
for(int i=0;i |