import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Draw {
public static void main(String args[])
{
new ChuangKou().CreateJFrame("圆形");
}
}
class DrawPanel extends JPanel
{
public void Draw(Graphics g)
{
super.paint(g);
g.drawOval(50, 50, 60, 60);
g.setColor(Color.BLUE);
}
}
class ChuangKou extends JFrame
{
public void CreateJFrame(String name)
{
JFrame jf=new JFrame(name);
Container container=jf.getContentPane();
jf.setSize(400,400);
jf.setVisible(true);
DrawPanel a=new DrawPanel();
a.setBackground(Color.orange);
setContentPane(a);
jf.add(a);
jf.setBackground(Color.green);
}
}
DrawPanel类需要重写paint方法,而不是在DrawPanel类的构造函数中写那些重绘制代码。
修正DrawPanel类代码如下,(去掉构造函数,重写paint方法将构造函数中的代码放入paint方法中)。
class DrawPanel extends JPanel {
public void Draw(Graphics g) {
}
public void paint(Graphics g) {
super.paint(g);
g.drawOval(50, 50, 60, 60);
g.setColor(Color.BLUE);
}
}
测试,OK。