如何调用具有抽象参数的方法?

时间:2014-06-02 04:44:50

标签: java abstract

我在Map课程paint(Graphics g)中有一个方法,我需要在我的main方法中调用。问题是,Graphics是抽象的,因此无法实例化;我收到此错误:Graphics is abstract; cannot be instantiated。那我怎么称呼呢?

public static void main(String[] args)
{
    //Drawing map
    Map m = new Map();
    Graphics g = new Graphics();
    m.paint(g);
}

public class Map
{
    public void paint(Graphics g)
    {
        g.drawLine(284,46,305,46);
        g.drawLine(234,267,284,244);
        g.drawRect(10,10,64,64);
    }
}

2 个答案:

答案 0 :(得分:0)

您需要创建Graphics的子类,或使用现有的子类。

答案 1 :(得分:0)

您需要获取Graphics对象的实例,该对象是扩展图形的类的实例,并且实际上是您想要的绘图。可能最简单的方法是使用Swing。关于Swing有很多教程,我想快速谷歌搜索会很快得到你想要的东西。一种方法:创建一个扩展JComponent的类,覆盖paintComponent(Graphics g),它为你提供图形宾语。然后创建一个JFrame(我称之为框架),并使用JFrame将您的课程实例添加到frame.add()。然后每当重新绘制帧时(可以使用frame.repaint()强制执行),将使用可用的图形对象调用paintComponent()方法。