Java中为什么绘制完图形的窗口被最小化又还原后,图形会消失,怎么解决啊 10

主类代码:classRoomWinner{publicstaticvoidmain(String[]args){JFramewin;ContainercontentPan... 主类代码:
class RoomWinner{
public static void main(String[] args){
JFrame win;
Container contentPane;
Graphics g;
GlotteryCard one,two,three;

win = new JFrame("Room Winner");
win.setSize(300,200);
win.setLocation(100,100);
win.setVisible(true);

contentPane = win.getContentPane();
contentPane.setBackground(Color.WHITE);

g = contentPane.getGraphics();

one = new GlotteryCard();
two = new GlotteryCard();
three = new GlotteryCard();

one.spin();
two.spin();
three.spin();
one.draw(g,10,20);
two.draw(g,50,20);
three.draw(g,90,20);
}
}
画图代码:
public void draw(Graphics g,int xOrigin,int yOrigin){
switch(color){
case 1: g.setColor(Color.RED);
break;
case 2: g.setColor(Color.GREEN);
break;
case 3: g.setColor(Color.BLUE);
break;
}
g.fillRect(xOrigin,yOrigin,WIDTH,HEIGHT);
g.setColor(Color.WHITE);
g.drawString(""+number,xOrigin+WIDTH/4,yOrigin+HEIGHT/2);
}
展开
 我来答
qdmmy6
2010-03-28 · TA获得超过2674个赞
知道小有建树答主
回答量:1823
采纳率:0%
帮助的人:1063万
展开全部
把代码帖出来!

如果你绘图使用的是getGraphics().draw(),那么会的调用repaint()方法后消失!你应该把绘图的代码写到paint(Graphics)方法中。你把代码帖出来,我给你改改!

你需要写一个MyFrame类,继承与Frame,并重写Frame类的paint方法,在这个方法里画图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Eking2000
2010-03-26 · TA获得超过1228个赞
知道小有建树答主
回答量:1471
采纳率:0%
帮助的人:732万
展开全部
据说是有双缓冲技术的,但是我因为没人教,所以一直不会,我避免这种情况的方法是用this.getGraphics().draw()在其他方法中绘制图形,并且把绘制图形的参数(比如直线时保存起点和终点坐标)保存下来,然后再paint(Graphics g)中使用保存下来的参数绘制图形。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b63c2cf
2010-03-26 · 超过27用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:59.3万
展开全部
把你的代码给我看看 我看看是哪个地方不正确了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式