【发布时间】:2013-12-09 17:56:34
【问题描述】:
public class aaa {
public static void main(String[] args)
{
bbb b=new bbb();
b.setVisible(true);
b.setSize(400, 400);
}
}
class bbb extends JFrame
{
bbb()
{
draw d=new draw();
add(d);
}
}
class draw extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D) g;
Ellipse2D rect=new Ellipse2D.Double();
rect.setFrameFromCenter(50,50,70,70);
g2.draw(rect);
g2.setPaint(Color.blue);
g2.fill(rect);
}
}
实际上,我知道这个程序会生成一个框架并在矩形内绘制椭圆...... 我唯一的问题是,什么时候会调用“paintcomponent(Graphics g)”方法... 我知道,它是“JComponent”中的一个方法,但是什么时候会被调用……请简要解释一下……
还有一个问题是......它在“Graphics”类型中有参数......但是它没有为“Graphics”类创建对象,那么我们如何调用它的方法(“Graphics”类中的方法")..
我知道这是个愚蠢的问题,但我知道我在概念上遗漏了一些东西......
【问题讨论】:
-
这不是一个愚蠢的问题,但它表明您错过了一些解释这一点以及更多内容的教程。请从这里开始:Lesson: Performing Custom Painting。更多细节可以在这里找到:Painting in AWT and Swing。制作 Swing 图形通常需要不同的编码方式和思维方式,以打破一些先入为主的观念,因为图形通常是被动完成的。查看教程,您不会后悔的。
标签: java swing graphics jframe jcomponent