http://blog.csdn.net/gcangle/article/details/8222005

————————————————————————————————————————————————————————

在做一个嵌入式摄像头项目中,遇到了这样一个郁闷的问题。

新建了一个类继承Jpanel,向其中添加了一些控件后,加入到原来的JFrame中,然后Jpanel中控件,无论如何都显示不了了。

(为了方便控制 ContentPane布局为“borderlayout”,而JPanel布局为“absolute”,Jpanel放在contenpane的NORTH位置)


而后上网查了不少资料,但是仍然无法解决。只能自己探究。

经过一天的尝试,发现了一个奇怪的现象。

当将继承类的布局

getContentPane().add(comp, BorderLayout.CENTER);

的时候。这个类的控件居然就能够正常显示了。而其他的例如getContentPane().add(comp, BorderLayout.NORTH);控件就无法显示。

真是神奇的存在!

于是进一步探究 终于发现了问题的核心!总结起来就一句话

当自己写的JPanel布局为Null时,只能放在CENTER的位置,否则将无法显示!

或者说只要将布局改为非Null,一切都正常了。

——————————————————————————————————————————————————————————————

在TopComponent中也要注意这种情况。。。

在TopComponent中将JPanel的Layout设置为FlowLayout才可。

posted on 2016-06-04 22:25  网络大豆  阅读(1305)  评论(0编辑  收藏  举报