在做课程设计的时候一直有个问题让我很困惑,在JFrame中如何能够安排两个指定大小的空间来显示组件?比如说,我的主Frame的高度是450,我希望能够用上方的60个高度来显示一张图片,但是不管我用什么布局管理器,当我添加进一个带有图片的JPanel组件时,总是不能以图片的实际高度来显示,而是下方留有很大的空白,这个空白大小好像是根据添加组件的个数来控制的,也就是说java分配每个JPanel组件时是按照主Frame的大小来平均分布的,而添加JButton、JLable之类的组件就不会有这种问题。初学java,对组件的布局之类的原理不是很清楚,请大家多多指教。

解决方案 »

  1.   

    要自定义排版的时候建议不用布局管理器,因为存在局限性
    使用每个组件的setBounds方法,自己定制排版
      

  2.   

    顶楼上的,就是不是用任何布局,每个组件都设置在JFrom中的位置
      

  3.   

    谢谢啦,之前尝试这个方法的时候忘了把布局管理器设置为null了,所以一直没成功,后来是用JPanel的setPreferredSize()方法,然后用BorderLayout布局管理器达到了我需要的效果,不过相比起来还是没有不用布局管理器灵活。