这段代码,编译能通过。可是在执行后,虽然能在上面画直线,但是,当最小化或者最大化后,画的直线就消失了,奇怪,代码中我也写了paint方法了啊/**
* @(#)DrawLine1.java
*
*
* @author
* @version 1.00 2007/10/13
*/import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class DrawLine1 extends Frame {
int orgx;
int orgy;
int endx;
int endy;
Image oimg = null;
Graphics og = null;
public void Paint(Graphics g)
{
if(oimg!= null)
{
g.drawImage(oimg,0,0,this);
}
}
public DrawLine1()
{
setSize(400,400);
setTitle("DrawLine");
setVisible(true);
Dimension d = getSize();
oimg = 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();
}
public void mouseReleased(MouseEvent e)
{
endx= e.getX();
endy= e.getY();
Graphics g = getGraphics();
g.setColor(Color.red);
g.setFont(new Font(null,Font.ITALIC|Font.BOLD,30) );
g.drawLine(orgx,orgy,e.getX(),e.getY());
g.drawString(orgx+","+orgy, orgx,orgy);
g.drawString(e.getX()+","+e.getY(),e.getX(),e.getY());
og.setColor(Color.red);
og.setFont(new Font(null,Font.ITALIC|Font.BOLD,30) );
og.drawLine(orgx,orgy,e.getX(),e.getY());
og.drawString(orgx+","+orgy,orgx,orgy);
og.drawString(e.getX()+","+e.getY(),e.getX(),e.getY());
}
});
}
public static void main(String[] args) {
// TODO, add your application code
System.out.println("Starting DrawLine1");
DrawLine1 mainframe = new DrawLine1();
}
}
* @(#)DrawLine1.java
*
*
* @author
* @version 1.00 2007/10/13
*/import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class DrawLine1 extends Frame {
int orgx;
int orgy;
int endx;
int endy;
Image oimg = null;
Graphics og = null;
public void Paint(Graphics g)
{
if(oimg!= null)
{
g.drawImage(oimg,0,0,this);
}
}
public DrawLine1()
{
setSize(400,400);
setTitle("DrawLine");
setVisible(true);
Dimension d = getSize();
oimg = 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();
}
public void mouseReleased(MouseEvent e)
{
endx= e.getX();
endy= e.getY();
Graphics g = getGraphics();
g.setColor(Color.red);
g.setFont(new Font(null,Font.ITALIC|Font.BOLD,30) );
g.drawLine(orgx,orgy,e.getX(),e.getY());
g.drawString(orgx+","+orgy, orgx,orgy);
g.drawString(e.getX()+","+e.getY(),e.getX(),e.getY());
og.setColor(Color.red);
og.setFont(new Font(null,Font.ITALIC|Font.BOLD,30) );
og.drawLine(orgx,orgy,e.getX(),e.getY());
og.drawString(orgx+","+orgy,orgx,orgy);
og.drawString(e.getX()+","+e.getY(),e.getX(),e.getY());
}
});
}
public static void main(String[] args) {
// TODO, add your application code
System.out.println("Starting DrawLine1");
DrawLine1 mainframe = new DrawLine1();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货