有一段程序是这样写的:
Grapics2D screen2D=(Graphics2D)screen;//构造Graphics2D对象
就是这个Grapics2D,在书上找了半天也没有找到一个Grapics2D的类什么的,而且这种构造类的对象也没有在书上看到过,不是都用new来构造一个对象吗?
Grapics2D screen2D=(Graphics2D)screen;//构造Graphics2D对象
就是这个Grapics2D,在书上找了半天也没有找到一个Grapics2D的类什么的,而且这种构造类的对象也没有在书上看到过,不是都用new来构造一个对象吗?
public void paint(Graphics g){}
public void paintAll(Graphics g){}
public void paintBorder(Graphics g){}
public void paintChildren(Graphics g){}
public void paintComponent(Graphics g){}
public void paintComponents(Graphics g){}
你先要搞懂screen是哪个类的变量(最有可能的是Graphics类如上面的g),(Graphics2D)screen;可以将screen强制转换成Graphics2D类,Graphics2D比Graphics类有更好的绘图能力。
如:
import java.awt.*;
import javax.swing.*;public class Test extends JPanel {
JFrame f = null; public Test() {
f = new JFrame("绘图");
f.getContentPane().add(this);
f.setSize(200, 200);
f.setVisible(true);
}
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g2d.setColor(Color.RED);
g2d.drawOval(10, 10, 120, 120); //我这里用的还是Graphics类的方法,你可以参考Graphics2D的API
} public static void main(String[] args) {
new Test();
}
}
Graphics2D和Graphics区别在于:Graphics只能画简单图形
比如
class c extends Canvas
{
public void paint(Graphics g)
Graphics2D g2d=(Graphics2D)g;
}
这个就可以把Graphics2D看作可以在画布Canvas上画东西的画笔
建议你去看JAVA图形设计的书,里面介绍的很详细