作者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