我是Java编程的新手,正在学习Head First Java。
在第12章中设计框架。
在Java代码类中,main
方法中没有任何方法的调用,但是当您运行它时,它会运行并运行“ paintComponent
”,
这让我感到困惑。
import java.awt.*;
import javax.swing.*;
class MyDrawPanel extends JPanel {
public static void main(String[] args) {
JFrame frame = new JFrame();
MyDrawPanel panel = new MyDrawPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Color startColor = MyDrawPanel.makeRandomColor();
Color endColor = MyDrawPanel.makeRandomColor();
GradientPaint gradient = new GradientPaint(70,70,startColor,150,150,endColor);
g2d.setPaint(gradient);
g2d.fillOval(70,70,100,100);
}
public static Color makeRandomColor() {
int red = (int) (Math.random() * 255);
int green = (int) (Math.random() * 255);
int blue = (int) (Math.random() * 255);
return new Color(red, green, blue);
}
}
如果有人可以帮助我理解它,我将不胜感激,它是如何工作的?
painComponent
是如何调用的?