我一直在考虑为我的几个项目制作自己的Java3D应用程序接口。(是的,我见过Java3D提供的Oracle应用编程接口。)java.awt.Graphics中定义了许多方法,比如drawRect(),但是一些基本函数是抽象的,比如drawLine()。在Graphics.java中没有实现的情况下,如何创建图形对象(如下面的代码所示)?
public void paint(Graphics g) {
g.drawString("Hello World!");
}任何帮助或解释都是非常感谢的!提前谢谢。
发布于 2012-01-26 05:38:19
这是特定于实现的,但这些方法通常是本机实现的,因此它们可以直接与本机窗口系统交互。您不能实例化Graphics对象,因为您希望使用的Graphics的具体实现可能是与本机系统交互的特定于实现的Graphics的子类型。强制Java库和JVM实现者为您创建此对象,从而使您不必处理操作系统级别的详细信息,并为图形包提供了通用的、类型安全的接口。
如果您想实现自己的包,则可能必须使用JNI来实现图形包。然后,您可以在OpenGL、DirectX或您喜欢的任何其他系统上实现图形。
希望这能有所帮助!
发布于 2012-01-26 05:41:53
JRE从我的评论中复制:这些都是由原生实现的。
您可以创建缓冲图像,并为其获取图形对象:
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = image.getGraphics(); 另请参阅:http://www.coderanch.com/t/345202/GUI/java/Create-Graphics-object
https://stackoverflow.com/questions/9010588
复制相似问题