用了双缓冲.....有时运行时图片很慢显示出来,有时又快,不解!!请各位多多指点指点..?
代码:
package myprojects.drawline;import java.awt.*;
import java.awt.event.*;
import java.util.*;class DrawLine2 extends Frame {
int orgX = 0;
int orgY = 0; Image imgBg = getToolkit().getImage("..\\BG.gif");
Image imgPoint = getToolkit().getImage("..\\Point.gif");
Image oimg = null;
Graphics og =null;
int bg = 0; int x = 0;
int y = 0;


public void paintPoint(Graphics g,int x,int y)//显示棋子
{
this.x = x;
this.y = y;



g.drawImage(imgPoint,x,y,this);
if(og != null)
{
og.drawImage(imgPoint,x,y,this);
    }
    }
  

public void paint(Graphics g)
{

        paintPoint(g,-10,-10);//解决一个无解问题的...
        

    if (bg == 0)//控制第一次把背景载入
{
            
    g.drawImage(imgBg,0,0,this);
     if(og != null)   //防止空指针异常
     {
     og.drawImage(imgBg,0,0,this);    
    } }

if(oimg != null)
{
   
           g.drawImage(oimg,0,0,this); }
    } 
public DrawLine2() {

setSize(661,514);
setTitle("DrawLine双缓冲");
setVisible(true);

Dimension d = getSize();
oimg = this.createImage(d.width,d.height);
og = oimg.getGraphics();


addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});


addMouseListener(new MouseAdapter()
{ public void mousePressed(MouseEvent e)
{
orgX = e.getX();
orgY = e.getY();
if(orgX>254 && orgX<634 && orgY>34 && orgY<414)
{
                bg = 1;
Graphics g = getGraphics();


                paintPoint(g,orgX-10,orgY-10);
                
g.setColor(Color.BLUE);
g.drawString(orgX + "," + orgY,orgX,orgY); og.setColor(Color.BLUE);
og.drawString(orgX + "," + orgY,orgX,orgY);
                }
}


});
} public static void main(String args[]) 
{
DrawLine2 mainFrame = new DrawLine2();
mainFrame.setSize(661,514); }
}