帮帮我啊

HONGBAOABCD 2007-10-13 06:22:22
这段代码,编译能通过。可是在执行后,虽然能在上面画直线,但是,当最小化或者最大化后,画的直线就消失了,奇怪,代码中我也写了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();

}
}
...全文
50 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaguarlsl 2007-10-15
  • 打赏
  • 举报
回复
在面板大小改变事件中添加validate()和repaint()方法

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧