package com.qq.DrawLine;
import java.awt.*;
import java.awt.event.*;
public class DrawLine extends Frame{
Image img;
Graphics g2;
int x1=0;
int y1=0;
int x2=0;
int y2=0;
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
DrawLine dl = new DrawLine();
dl.setSize(500,500);
dl.setTitle("Test");
dl.setVisible(true);
}
public DrawLine()
{
//Dimension d = getSize();
//img = createImage(d.width,d.height);
//final Graphics g = getGraphics();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
setVisible(false);
dispose();
System.exit(0);
}
});
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
x1 = e.getX();
y1 = e.getY();
}
public void mouseReleased(MouseEvent e)
{
x2 = e.getX();
y2 = e.getY();
Graphics g = getGraphics();
g.setColor(Color.RED);
g.setFont(new Font(Font.SERIF,Font.ITALIC,32));
g.drawString(x2+","+y2,x2,y2);
g.drawString(x1+","+y1,x1,y1);
g.drawLine(x1,y1,x2,y2);
g2.setColor(Color.RED);
g2.setFont(new Font(Font.SERIF,Font.ITALIC,32));
g2.drawString(x2+","+y2,x2,y2);
g2.drawString(x1+","+y1,x1,y1);
g2.drawLine(x1,y1,x2,y2);
}
});
}
public void paint(Graphics g)
{
if(img!=null)
{
g.drawImage(img,0,0,this);
}
{
Dimension d = getSize();
img = createImage(d.width,d.height);
g2 = img.getGraphics();
}
}
}
请问这个程序有什么问题,为什么实现不了双缓冲,开始曝光后可以把缓冲图片贴上去,但是多曝光几次(例如最小化,全屏等)就把屏幕清空了,为什么,请高手指点
|