Java-通过向父JPanel添加更多JPanel来自动滚动条

时间:2019-01-29 07:35:45

标签: java swing jpanel jscrollpane

我正在创建类似App的Messenger,仅用于学习。我将Grid的Parent JPanel的布局设置为GridLayout

现在,当我添加超过父JPanel大小的更多JPanel时,我希望JPanel显示ScrollBar。

我尝试将其添加到ScrollPane,但无法正常工作 波纹管是示例图片,

对不起,如果我的问题没有得到充分解释。如有需要,我将尝试进一步解释。

enter image description here

2 个答案:

答案 0 :(得分:0)

我的看法是,在您的情况下,在BoxLayout内有Y_AXIS的{​​{1}}(带有小“把戏”)会更优雅。看看下面的SSCCE:,其中有一行用于注释您的问题,并带有网格布局。

BorderLayout

预览:

enter image description here

答案 1 :(得分:0)

每个人都试图解决我的问题,但就我而言,这无济于事。 所以我尽了一切可能。

我看到scrollBar的{​​{1}}根据JScrollPanel的大小出现,所以我尝试增加JPanel的大小,这解决了我的问题。下面是一个示例和我所说的解释。

将所有JPanel添加到父JPanels之后,我将父JPanel的{​​{1}}配置为父height的{​​JPanel +(子height * {{1}的JPanel}}

考虑以下代码:

height

这里的JPanel是可以适合父级number of msgs的默认大小的msgPanel.setPreferredSize(new Dimension(268,418+(new msg().getPreferredSize().height*(msgs.length-4))); 的默认数量