repaint();和paintComponent();的小问题?
import javax.swing.*;import java.awt.*;
import java.awt.event.*;
public class SimpleGui3C implements ActionListener{
JFrame frame;
public static void main(String[] args){
SimpleGui3C gui=new SimpleGui3C();
gui.go();
}
public void go(){
frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //默认关闭操作=退出程序
JButton button=new JButton("按下"); //创建按钮并赋予名称
button.addActionListener(this); //向按钮注册
MyDrawPanel drawpanel=new MyDrawPanel(); //引用对象 MyDrawPanel的类
frame.getContentPane().add(BorderLayout.NORTH,button); //装上按钮
frame.getContentPane().add(BorderLayout.CENTER,drawpanel);//装上另一个widget(小装置)
frame.setSize(300,300);//设置frame(框架)大小
frame.setVisible(true);//执行显示动作
}
public void actionPerformed(ActionEvent event){ //事件处理的方法
frame.repaint(); //重新绘制
}
}
class MyDrawPanel extends Panel{
public void paintComponent(Graphics g){ //此方法覆盖掉 父类Panel 中的方法
Graphics2D g2d=(Graphics2D) g; //强制g 转换回它的子类Graphics2D
GradientPaint gradient=new GradientPaint(70,70,Color.blue,150,150,Color.orange); //制作梯形涂料
g2d.setPaint(gradient); //设置笔刷(涂料)
g2d.fillOval(70,70,100,100); //填充椭圆形
}
}
为啥执行程序只看到一个按钮,没有书上说的圆形图案??