读书人

如何保留以前的图形

发布时间: 2011-12-24 23:03:24 作者: rapoo

怎么保留以前的图形
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.Graphics2D;
public class DrawLine extends JPanel {
JFrame frame;
int i=1;
public DrawLine()
{


frame=new JFrame ( "²âÊÔ ");
frame.setBounds(160,100,600,610);
frame.getContentPane().add(this);
frame.setBackground(Color.black);
frame.setVisible(true);
}


public void paint(Graphics g)
{

if(i==1)

{

g.setColor(Color.white);
g.drawLine(300,20,300,570);//ÊúÏß

g.drawLine(20,300,580,300);//ºáÏß

g.drawLine(300,20,290,40);
g.drawLine(300,20,310,40);//ÉϼýÍ

g.drawLine(580,300,560,290);
g.drawLine(580,300,560,310);
g.drawString( "(0,0) ",310,290);
i=0;

}

}



public void update(Graphics g)

{
this.paint(g);
System.out.println( "dd ");

}


public static void main(String[] arg){
DrawLine dl = new DrawLine();

}
}

当窗口变大的时候, 不能保留以前的东西了 怎么办 ? 很着急 希望大家帮帮忙


[解决办法]
用JPanel里边的protected paintComponent(Graphics g)这个函数,在里面不要调用super.paintComponent(g);就可以了。
[解决办法]
把画板上的图形都保存到Vector中,每次画时都遍历一下



[解决办法]
把画图板里的图形放在一个数组里ArrayList
需要刷新的时候遍历一下就可以了
[解决办法]
给 frame 添加 WindowStateListener

在实现windowStateChanged方法时调用DrawLine.repaint()方法

读书人网 >J2SE开发

热点推荐