作者cpl (siri)
看板java
标题[问题]新手的蠢问题
时间Fri Apr 11 07:18:04 2008
最近正在看Java Concepts by Cay Horstmann这本书
里面有一章讲到drawing shapes
例子是在一个frame里面画两个长方形
有两个files:RectangleComponent.java跟RectangleViewer.java
code如下
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import javax.swing.JPanel;
import javax.swing.JComponent;
public class RectangleComponent extends JComponent{
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
Rectangle box = new Rectangle(5,10,20,30);
g2.draw(box);
box.translate(15,25);
g2.draw(box);
}
}
import javax.swing.JFrame;
public class RectangleViewer{
public static void main(String arg[]){
JFrame frame = new JFrame();
frame.setSize(300,400);
frame.setTitle("Two rectangles");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
RectangleComponent component = new RectangleComponent();
frame.add(component);
frame.setVisible(true);
}
}
我的问题是
为什麽paintComponent这个method
不用作用在RectangleComponent这个object上?
为什麽不需要类似 component.paintComponent()这样的code
我知道我的问题一定很蠢
可是就真的很疑惑
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 160.39.89.42
1F:推 superlubu:因为 frame 会自己把所有 member 的 paintComponent 04/11 08:19
2F:→ superlubu:call 一次 (为了再推这四字等了一分钟... 该换个短 id) 04/11 08:20
3F:推 heal92013:在下也有同感><" 04/11 10:03