编程以创建形状并在控制台上显示它们

时间:2013-09-06 11:47:27

标签: java swing awt paint shapes

我的小作业如下。你能否详细说明如何实现这个

  

编写一个简单的结构化程序和简单的oo程序,实现显示形状功能。你的程序应该简单地打印(控制台)数字,如果形状,然后要求每个形状显示自己,这也将导致生成一行输出到控制台,每个形状一个。对于主程序来说,在对该集合进行排序和显示形状之前创建一组形状是完全可以的。你的程序应该支持圆形,三角形和正方形,但是应该使用多态,这样主程序就不知道它正在处理的形状类型,而是统一处理形状

我创建了一个程序来创建如下所示的形状,但我不确定如何创建所提到的形状并将它们存储在集合中并迭代以在控制台上显示这些形状。我被告知不要使用数据库存储形状

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JApplet;

public class DrawShapes extends JApplet {

    public void paint(Graphics g) {
        g.setColor(Color.RED);
// drawing string
        g.drawString("Hello World!", 100, 100);
// drawing rectangle
        g.draw3DRect(120, 120, 120, 120, true);
        g.setColor(Color.blue);
        g.fill3DRect(120, 120, 120, 120, true);
// drawing circle
        g.drawOval(240, 240, 120, 120);
        g.setColor(Color.CYAN);
        g.fillOval(240, 240, 120, 120);
// drawing square
        g.drawRect(350, 350, 250, 100);
        g.setColor(Color.magenta);
        g.fillRect(350, 350, 250, 100);
// drawing trinale
    }
}

1 个答案:

答案 0 :(得分:1)

只是一个想法如何做到这一点。请注意,图形对形状集合是隐藏的。

interface Drawable {
  public void draw(Graphics g);
}

class DrawableSquare implements Drawable{
  public DrawableSquare(int x, int y, int width) { ... }
  public void draw(Graphics g) 
  {
    g.fillRect(x, y, width, width);
  }
}

class Screen {
  Collection<Drawable> drawables;

  public void paint(Graphics g) {
     for (Drawable dr: drawables) {
       dr.draw(g);
     }
  }
}