作者woodymonkey (小罐的吃太快)
看板java
标题[问题] 请问用dispose关闭frame的方法
时间Tue Jun 24 01:21:48 2008
简介:
有2个frame,用第一个frame上的按钮来控制第二个frame的开关。
每一次开启第二个frame都要抓萤幕上的图做为第二个frame的背景,
但是一直无法成功,只有第一次开起来时会抓,
关掉再开不会抓新的萤幕画面,还是显示旧画面。
开:frame2.pack();
frame2.setVisible(true);
关:frame2.dispose();
---------------------------------------------
详细问题内容:
我做了2个frame:
frame1上有按钮,按了以後会抓取萤幕画面,
然後建立frame2,将抓取的画面做为frame2的背景。
然後如果再按一下frame1上这个按钮,则可将frame2关掉。
而frame1视窗一直都在画面上没有被关掉。
可是有2个问题一直想不出解决的办法:
问题1:
当我按下frame1的按钮来关闭frame2後 → frame2.dispose();
再按一下按钮建立新的frame2,frame2的背景还是第一次所抓的萤幕画面,
而不是我这次按下时抓的萤幕画面…
不管我萤幕变成什麽画面,新建立的frame2总是会显示第一次抓的画面…
看了一下dispose()的说明,好像是将frame的component释出,
但下次再建立此frame,则会回到上一次的状态...
请问我要怎麽样每次建立frame2时,都抓到最新的萤幕画面呢?
问题2:
因为我的frame2的背景是抓取整个萤幕而来的,
所以会连frame1的视窗画面也抓下来,放入frame2。
此时如果我把frame1移到旁边,则会看到原处有frmae1的画面,
变成萤幕上有2个frame1的画面。
我不想frame1视窗画面被抓下来,所以在想解决方法。
目前是想到,在按下按钮时,先将frame1缩至工作列,
然後抓取萤幕,放入frame2。然後再将frame1恢复。
不过我不知道要怎麽用frame1里的panel上的按钮来控制frame1…
以下是我的程式码:
http://www.badongo.com/pic/3841262
DFrame(就是frame1)含有CPanel,CPanel里放入1个按钮,并监听此按钮。
此按钮可以建立或关闭frame2,frame2含有DrawPanel,DrawPanel可以抓萤幕画面。
图中只有右边下面那个有注明的是真正的视窗,
其他所有地方包括下面的工作列都是frame2的背景(全萤幕)。
问题很长,谢谢大家有耐心看完~
烦麻各位高手给我一点建议。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.213.208
※ 编辑: woodymonkey 来自: 140.120.213.208 (06/24 01:24)
1F:推 TonyQ:你是不是应该要先从container remove掉旧panel? 06/24 03:08
2F:→ woodymonkey:原来是remove啊!谢谢楼上解决了我第一个问题! 06/25 16:20
3F:→ woodymonkey:那再请问一下我要如何从panel中控制frame的行为啊? 06/25 16:23
4F:→ woodymonkey:我的frame和panel写在不同档案。 谢谢帮忙~ ^^ 06/25 16:29