一简单的java改错程序!急急急!
以下程序b=newGraphics();有错!,原因为CannotinstantiatethetypeGraphics不能实例化,Graphics类型!请改错!谢谢!im...
以下程序b=new Graphics();有错!,原因为Cannot instantiate the type Graphics
不能实例化,Graphics类型!
请改错!谢谢!
import javax.swing.JApplet;
import java.awt.Color;
import java.awt.Graphics;
public class StrinDrawing extends JApplet{
Graphics b;
Color str = null;
public void init()
{
b=new Graphics();
}
public void paint(Graphics g) {
Color str = Color.blue;
g.setColor(str);
g.drawString("欢迎你来到这里!", 20, 30);
}
} 展开
不能实例化,Graphics类型!
请改错!谢谢!
import javax.swing.JApplet;
import java.awt.Color;
import java.awt.Graphics;
public class StrinDrawing extends JApplet{
Graphics b;
Color str = null;
public void init()
{
b=new Graphics();
}
public void paint(Graphics g) {
Color str = Color.blue;
g.setColor(str);
g.drawString("欢迎你来到这里!", 20, 30);
}
} 展开
5个回答
展开全部
Graphics类是所有图形上下文(Graphic context)的抽象基类,因此它是不能直接实例化的,那么为了使用Graphics类绘图,就必须创建其非抽象的子类。
那么我们又如何在这个子类中实现Graphics类(Graphics中定义了很多抽象方法)中的抽象方法呢?
要用这些方法来实现在特定的组件及设备上绘图,而又不能用Graphics类(因为它无法被实例化),怎么做呢?没有办法。甚至连现有的Graphics类的子类也不会用。但我们知道Applet、Canvas、Frame等很多组件类都继承并重载了repaint()方法,而轻量级的repaint()方法又会调用paint(Graphics g)方法。这样,我们通过继承这些组件类,重写其中的paint方法(因为这个方法提供了Graphics类的子类的实例),在这个方法体中完成我们在对应组件上的绘图意图,然后在外部调用repaint()方法(因为它不需要Graphics参数,我们恰恰也不知道怎么创建一个有用的Graphics类的子类及其实例),就可以实现绘图了。
概括起来讲就是:找到一个带有(Graphics g)参数的现有方法和一个自动调用该方法而不带有(Graphics g)参数的现有方法,覆盖前一个方法,在外部调用后一个方法,从而实现绘图目的。
最常见、常用的是paint,paintGraphics和repaint。
那么我们又如何在这个子类中实现Graphics类(Graphics中定义了很多抽象方法)中的抽象方法呢?
要用这些方法来实现在特定的组件及设备上绘图,而又不能用Graphics类(因为它无法被实例化),怎么做呢?没有办法。甚至连现有的Graphics类的子类也不会用。但我们知道Applet、Canvas、Frame等很多组件类都继承并重载了repaint()方法,而轻量级的repaint()方法又会调用paint(Graphics g)方法。这样,我们通过继承这些组件类,重写其中的paint方法(因为这个方法提供了Graphics类的子类的实例),在这个方法体中完成我们在对应组件上的绘图意图,然后在外部调用repaint()方法(因为它不需要Graphics参数,我们恰恰也不知道怎么创建一个有用的Graphics类的子类及其实例),就可以实现绘图了。
概括起来讲就是:找到一个带有(Graphics g)参数的现有方法和一个自动调用该方法而不带有(Graphics g)参数的现有方法,覆盖前一个方法,在外部调用后一个方法,从而实现绘图目的。
最常见、常用的是paint,paintGraphics和repaint。
展开全部
那他不是实体类了,是接口或抽象类吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为Graphics类是抽象类,所以不能实例化,你可以new一个Graphics类的子类,在这里就是下面的ProxyGraphics类。然后运行,即可。如下面代码。
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JApplet;
import sun.print.ProxyGraphics;
public class StrinDrawing extends JApplet {
Graphics b;
Color str = null;
public void init() {
b = new ProxyGraphics(b);
}
public void paint(Graphics g) {
Color str = Color.blue;
g.setColor(str);
g.drawString("欢迎你来到这里!", 20, 30);
}
}
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JApplet;
import sun.print.ProxyGraphics;
public class StrinDrawing extends JApplet {
Graphics b;
Color str = null;
public void init() {
b = new ProxyGraphics(b);
}
public void paint(Graphics g) {
Color str = Color.blue;
g.setColor(str);
g.drawString("欢迎你来到这里!", 20, 30);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
估计是抽象类,不能示例化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
shamrock777 的 是 对的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询