新人提问:GUI问题

zerock 2007-10-08 05:16:54
我使用的是JBuilder2006
问题如下:
有10个button,每个button都会弹出一个frame。
请问如何在按下其中一个button时关闭之前其他button弹出的所有frame而只显示它本身所要弹出的frame?
如果可以请附上具体代码
谢谢!
...全文
137 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zerock 2007-10-16
  • 打赏
  • 举报
回复
12楼的,你和我原先的想法是一样的,可惜是行不通的
很长时间了,貌似不会有更高的答案了哦
开贴时分设少了,就只能意思意思了
zerock 2007-10-13
  • 打赏
  • 举报
回复
感谢楼上的2位
貌似9楼的代码稍微有点小问题。。。
是不是该这样:frame[currentFrameIndex].setVisible(true); ?
无声崩溃 2007-10-13
  • 打赏
  • 举报
回复
this.dispose();
frame2.setVisible(true);
bradwoo8621 2007-10-12
  • 打赏
  • 举报
回复
既然同一时间只有一个Frame被打开, 那么不需要数组了.
在主Frame里面维持一个FrameInstance等于当前打开的从Frame.
当某个button被按下时, 如果FrameInstance != null, frameInstance.dispose(), hide(), setVisible(false)?随便你了.
然后打开新的Frame, frameInstance = newFrame.

注意如果frame关闭不是用dispose, 那么请在button中维护关联的frame, 以便下次打开只要show()/setVisible(true)就行了.
代价是耗点内存(实际上挺大), 如果dispose了, 那么下次请重新构造, 代价是耗点时间(重新构造总是需要时间的么), 如果frame上没有很多组件, 没有未保存的数据, 建议dispose掉.
jyzhaowb 2007-10-11
  • 打赏
  • 举报
回复
JFrame frame[] = new JFrame()[10];
int currentFrameIndex = 0;
.....

onClick(){
for(int i=0;i<10;i++){
if(currentFrameIndex!=i){
frame[i].setVisible(false);
}
}
frame[currentFrameIndex].setVisible(false);
}
jaguarlsl 2007-10-11
  • 打赏
  • 举报
回复
除了循环,没有其他办法
zerock 2007-10-10
  • 打赏
  • 举报
回复
能提供下具体代码吗?
ycy1984 2007-10-10
  • 打赏
  • 举报
回复
数组或LIST 遍历一下关吧。
java3jk 2007-10-09
  • 打赏
  • 举报
回复
用数组呀
年轻人 认真点

zerock 2007-10-09
  • 打赏
  • 举报
回复
楼上的说得好!
但作为新人,多学点新知识总是不会错的吧!
如果有更优化的方法的话,学习下不是很好吗?
insiku 2007-10-08
  • 打赏
  • 举报
回复
嫌麻烦 做什么程序员
zerock 2007-10-08
  • 打赏
  • 举报
回复
我就是嫌那样麻烦,又简单点的方法吗?
AppleYang2006 2007-10-08
  • 打赏
  • 举报
回复
把其它的frame.dispose()就好了啊,

62,614

社区成员

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

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