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