0

我正在尝试将对象从数组中绘制到画布上,但问题是,我不知道该怎么做?这必须包括形状的位置和大小,并且会有不止一种形状。到目前为止我得到的代码(虽然效率低/不好)

public class MCanvas extends Canvas {
    private Object[] world = {};

    public void paint(Graphics g){  
        try{  
           // How to paint all the shapes from world here?
        } catch (NullPointerException e) {  
              System.out.println(e.toString());  
        }  
      } 

}

有任何想法吗?谢谢。

4

1 回答 1

0

如果您使用从 扩展的对象java.awt.Shape,您可以使用Graphics2D上下文来翻译和绘制它们

由于(在 Java 1.3/4 左右),绘制引擎保证使用Graphics2D实例。

public void paint(Graphics g){  
    super.paint(g);
    Graphics2D g2d = (Graphics2D)g;
    for (Object o : world) {
        if (o instanceof Shape) {
            Shape shape = (Shape)o;
            //if the shape isn't created with 
            // a location, you can translate them
            shape.translate(...,...);
            g2d.setColor(....);
            g2d.draw(shape);
            //g2d.fill(...);
        }
    }
} 

您可能想查看2D Graphics以了解更多详细信息。

另外,使用 aJPanel代替,Canvas然后覆盖其paintComponent方法

查看自定义绘画了解更多详情

于 2013-03-07T20:03:36.507 回答