如何判断JFrame里是否已添加了某个组件
答案:2 悬赏:80 手机版
解决时间 2021-03-11 23:00
- 提问者网友:鐵馬踏冰河
- 2021-03-11 08:08
该组件为JPanel,类名为MyPanel
最佳答案
- 五星知识达人网友:你哪知我潦倒为你
- 2021-03-11 08:36
在MyPanel 类中添加一个成员变量 private boolean zhuangtai=False;
来记录这个控件是否被添加,
当把控件添加到窗体中时,调用 zhuangtai 的set 方法设置为 true; 删除控件时 设置为false;
这时候就可以判断zhuaungtai是为true 还是false 真就是已经添加,假就是没有;
来记录这个控件是否被添加,
当把控件添加到窗体中时,调用 zhuangtai 的set 方法设置为 true; 删除控件时 设置为false;
这时候就可以判断zhuaungtai是为true 还是false 真就是已经添加,假就是没有;
全部回答
- 1楼网友:北城痞子
- 2021-03-11 08:46
有区别的
当你创建一个jframe的时候jframe jf = new jframe();
在构造方法jframe()内部会给jf默认添加一个rootpane
所以执行完jframe jf = new jframe();这句话之后jf上面已经添加了一个默认的rootpanel了
然后你再调用jf.add(panel) 这个时候,panel和rootpane是平级的
理由:1,你可以读源代码 ,查看构造方法怎么写的
2,或者你可以测试一下,分别执行
jf.setbackground(color.blue);
jf.getcontentpane().setbackground(color.black);
这两句代码,看看效果(实际上上面一句并不能改变界面的背景色,下面一句才可以,因为rootpane把jf给挡住了,上面一句是改变了jf的背景色,但是你眼睛看到的并不是jf,其实是rootpane.)
另外
jf.getcontentpane()==jf.getrootpane().getcontentpane()
上面的比较返回的true
所以你调用jf.getcontentpane().add(panel) 其实是把panel添加到rootpane上面了 这个时候panel和rootpane就不是平级的了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯