[問題] Component.paint() 的呼叫?
最近正在看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
推
04/11 08:19, , 1F
04/11 08:19, 1F
→
04/11 08:20, , 2F
04/11 08:20, 2F
推
04/11 10:03, , 3F
04/11 10:03, 3F