import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyFrame extends JFrame{
public MyFrame(){
setSize(500,500);
  setVisible(true);
Graphics g=this.getGraphics();
g.setColor(new Color(255,0,0));
g.drawString("hello",30,40);
g.fillRect(20,30,200,300);
g.fillArc(300,300,50,50,20,20);
 addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0); //关闭窗口时退出
      }
    });
}
public static void main(String args[]){
new MyFrame();
}
}
各位帮忙看看,为什么这个程序运行的结果不固定呢,有时能显示出所画的图形,有时就显示不出来。

解决方案 »

  1.   


    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;import javax.swing.JFrame;
    public class MyFramexxx extends JFrame{
    public MyFramexxx(){
    setSize(500,500);
    setVisible(true);

    this.doLayout();
    }
    @Override
    public void paint(Graphics g) {
    g.setColor(new Color(255,0,0));
    g.drawString("hello",30,40);
    g.fillRect(20,30,200,300);
    g.fillArc(300,300,50,50,20,20); 
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0); //关闭窗口时退出
    }
    });
    }
    public static void main(String args[]){
    new MyFramexxx();
    }
    }