注册 登录
编程论坛 JAVA论坛

repaint();和paintComponent();的小问题?

成成成 发布于 2017-03-18 13:57, 1591 次点击
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);  //填充椭圆形
}
}

为啥执行程序只看到一个按钮,没有书上说的圆形图案??
0 回复
1