+ -
当前位置:首页 → 问答吧 → Flowlayout如何加JScrollPane

Flowlayout如何加JScrollPane

时间:2011-09-27

来源:互联网

如题,我用Flowlayout装了很多按钮,都是正常排序的,但是加了JScrollPane全都变成一排的,是不是Flowlayout不支持竖项的
JScrollPane,我试过用GridBagLayout,但是貌似还是一样的,添加了JScrollPane就不自动换行了。
求解决方法

作者: tjhyzg   发布时间: 2011-09-27

JScrollPane是一个容器,可先设置它的布局,再向其中加入组件,最后窗体容器frame调用add将JScrollPane加入进去

作者: xianqiang1   发布时间: 2011-09-27

JScrollPane可初始化时可设置为自动换行等属性

作者: xianqiang1   发布时间: 2011-09-27

首先,Flowlayout 就是一行

为什么会换行呢?

那是当可显示区域的宽度小于他的必要大小的时候,会被自动压到下一行去

而 JScrollPane 是让面板整个显示出来,所以就不会出现可显示区域的宽度不足的情况,它以滚动条处理了,保证必要的宽度

所以你用 JScrollPane 包住这个使用了 Flowlayout 的面板后,就不会换行了,会出现滚动条

作者: sunyiz   发布时间: 2011-09-27

JScrollPane容器可以用来显示正规内容,当你在没有加JScrollPane的时候,面板的内容正常,是因为空间位置还够容纳的下那些按钮,但是你加了JScrollPane后位置不够了,就不正常了。
JScrollPane可以把你要显示的面板装起来,然后就会正常显示,空间不够就会出现滚动条。

作者: feifeikub   发布时间: 2011-09-27

那么我要实现同样的效果应该怎么解决呢,有替代Flowlayout而又能自动换行的容器没有啊

作者: tjhyzg   发布时间: 2011-09-27

方法一:
设置你使用了 Flowlayout 的那个控件的 PreferredSize
即调用 setPreferredSize 方法,或者重写其 getPreferredSize 方法
使它的宽度固定,即使包在 JScrollPane 里也会换行

方法二:
不要用 JScrollPane
这你把需求详细说一下,比如为什么你要用 JScrollPane?
才能给你更多的参考

作者: sunyiz   发布时间: 2011-09-27

我把好多图标加到Flowlayout控件里面了,所以要滚屏查看下面的,出了用JScrollPane还有其他方法吗

作者: tjhyzg   发布时间: 2011-09-27

热门下载

更多