请问Grahpics2D类的draw(Shape s)方法是如何实现绘制功能的?
看source该draw方法抽象 并且该类没有子类
谢谢如下面程序段所示:package demo;/** @version 1.31 2004-05-03 @author Cay Horstmann*/import java.awt.*;import java.awt.geom.*;import javax.swing.*;public class DrawTest{ public static void main(String[] args) { DrawFrame frame = new DrawFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}/** A frame that contains a panel with drawings*/class DrawFrame extends JFrame{ public DrawFrame() { setTitle("DrawTest"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // add panel to frame DrawPanel panel = new DrawPanel(); add(panel); } public static final int DEFAULT_WIDTH = 400; public static final int DEFAULT_HEIGHT = 400; }/** A panel that displays rectangles and ellipses. */class DrawPanel extends JPanel{ public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; // draw a rectangle double leftX = 100; double topY = 100; double width = 200; double height = 150; Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height); g2.draw(rect); }}
看source该draw方法抽象 并且该类没有子类
谢谢如下面程序段所示:package demo;/** @version 1.31 2004-05-03 @author Cay Horstmann*/import java.awt.*;import java.awt.geom.*;import javax.swing.*;public class DrawTest{ public static void main(String[] args) { DrawFrame frame = new DrawFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}/** A frame that contains a panel with drawings*/class DrawFrame extends JFrame{ public DrawFrame() { setTitle("DrawTest"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // add panel to frame DrawPanel panel = new DrawPanel(); add(panel); } public static final int DEFAULT_WIDTH = 400; public static final int DEFAULT_HEIGHT = 400; }/** A panel that displays rectangles and ellipses. */class DrawPanel extends JPanel{ public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; // draw a rectangle double leftX = 100; double topY = 100; double width = 200; double height = 150; Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height); g2.draw(rect); }}
解决方案 »
- 截取字符串中的ip地址,大家帮帮忙
- 请问如何把一个字节数组(内容为ASCII字符)转换为一个字符串?
- 为什么我的网站在在我的电脑上IIS测试没有问题,上传到空间就打不开。请高手指教,给出详细的解决方案,我是新手!我的空间网址是www.hswcn.com
- 问一下有谁知道 MVS 是什么东东
- 说出你自己的理解:流(stream)到底是什么?你是怎么理解流(stream)的?
- 刚入门(看完一本入门级的书籍),看《Java与模式》合适吗?
- 日期相减问题
- Hibernate Tools
- 怎样去掉对话框最上边的边框(有关闭按钮的那一条 ,好象叫title bar)
- 小弟想学java,可是不知从何学起,甚至……
- 急救~~~~~怎么用url类实现访问带session的两个页面?????????
- 请大家推荐一下学习开源项目的方法
就是这个程序:import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;public class DrawTest
{
public static void main(String[] args)
{
DrawFrame frame = new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class DrawFrame extends JFrame
{
public DrawFrame()
{
setTitle("DrawTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
DrawPanel panel = new DrawPanel();
add(panel);
}public static final int DEFAULT_WIDTH = 400;
public static final int DEFAULT_HEIGHT = 400;
}class DrawPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;double leftX = 100;
double topY = 100;
double width = 200;
double height = 150;
Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);
g2.draw(rect);
}
}
可是我认为draw(S s)至少应该有调用底层代码的顶层代码
譬如
draw (Shape s)
{
JVM.底层代码....
}