Applet的paint(Graphics g)中的Graphics Graphics是抽象类,在paint方法中怎么能作为一个参数呢,实际运行中是为什么可以直接调用它中的抽象方法drawString ,drawPolygon等? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Graphics作为一个抽象类是不能够直接调用它的抽象方法的,但是在paint(Graphics g)方法中传入的是一个继承了Graphics的具体类ProxyGraphics(在SUN的JDK中),因此你在使用drawPolygon方法时事实上是在调用Graphics子类的方法。 一般在paint方法中,都要类型转换Graphics2D g2=(Graphics2D)Graphics;然后调用这个类的方法就可以实现画图 Graphics的直接已知子类:DebugGraphics, Graphics2D,怎么没有看到你说的 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 sun.print.ProxyGraphics;并不是JDK中自带的 对的,只能调用Graphics的方法,一般都会把转化成Graphics2D,因为这类实现了更多的方法,而且实现了对图形的多态绘制,draw(Shape s) package com.sun.java.swing.plaf.nimbus does not exist JAVA如何创建Graphics对象 一个计算矩形面积的程序,怎么会出错? 两分钟开发一个AJAX应用的教程 请教:System.out.println与System.err.println的区别? 寻求数据结构和算法(Java实现)电子书 怎么样实现图象类型的转换?jpg-->gif,...等~~ jdk1.3是怎样安装的 请问:java.naming.corba.orb在那个jar包里有。 weblogic 不能显示中文,怎么办〉??急! 给个建议 急!JDK6安装求助
Graphics2D g2=(Graphics2D)Graphics;
然后调用这个类的方法就可以实现画图
ProxyGraphics,可以测试出它来吗?
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); }}
并不是JDK中自带的
对的,只能调用Graphics的方法,一般都会把转化成Graphics2D,因为这类实现了更多的方法,而且实现了对图形的多态绘制,draw(Shape s)