当前位置: 首页 > 知识库问答 >
问题:

java JScrollPane与JPanel一起使用BoxLayout大小调整元素

蒯慈
2023-03-14

我有一个针对不同元素的JPanels集合:JPanelShowPane、seasonsPane、episodesPane、airingsPane
所有这些元素的setLayout设置为null,大小固定为304x416。我将这些JPanel添加到一个大小为1280x416的名为showViewPanel的JPanel中,并设置了一个BoxLayout,如下所示(下面是JFrame中的代码):

showViewPanel.setLayout(new BoxLayout(showViewPanel, BoxLayout.X_AXIS));
showViewPanel.setSize(1280, 416);
showViewScroll = new JScrollPane(showViewPanel);
add(showViewScroll);
setSize(304, 416);
setVisible(true);

我搞不懂的是,为什么它不生成所有组件的可滚动视图,而是调整showViewPanel的大小以匹配窗口的大小。我做错了什么?

共有1个答案

车胤运
2023-03-14

将子面板的preferredSize重写为304x416。scrollpane依赖于内容的首选大小(这取决于其内容的首选大小)。

布局管理器将根据子面板的首选大小设置子面板的大小,因此您自定义的子面板将被覆盖。通常,您应该删除null布局,并学习使用布局管理器。绝对的位置总是会带来麻烦,即使不是这样,也不值得麻烦。

 类似资料:
  • 起初,我只有文本栏和状态栏,如下例所示(我不需要父容器): 这是应该的。但是,请记住状态栏的高度。现在,如果您将StatusBar类更改为下面的类,那么高度几乎会增加一倍。为什么会这样? 这种设置并不需要更多的垂直空间: 我可以让这成为一个新问题,但我觉得不值得...

  • 问题内容: 我有一个与作为布局经理。 在南边界中,我有一个,我希望用户可以调整其大小,即用户可以单击边界的边缘并将其向上拖动以使其变大。 您是否知道我可以做到这一点? 问题答案: 为了使框架中的面板可单独调整大小,您需要将其添加到。 而不是将其放置在框架的南部,而是将其放置在中心。拆分窗格将使拆分中的底部面板看起来像在南方,而拆分中的顶部面板将位于框架的中心。 确保使用设置两个面板的方向。 然后,

  • 我有一个JScroll面板和一个JGroup添加到它。我想绘制到JGroup并使JScrollPane的滚动条在绘图超过面板大小时出现,并且能够垂直和水平滚动绘图。 我尝试过咨询各种论坛和官方文档,并尝试了一些事情(设置边框、首选尺寸等),但似乎都没有产生预期的效果。 我有一个JFrame(附带GridBagLayout,btw.): 相关组件包括: JPanel公司: JScrollPane:

  • 问题内容: 我是Java的新手,开始学习挥杆技巧,并且在JFrame中调整JPanel的大小时遇到​​问题。我正在关注本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with- netbeans.html 因为最终我将学习每种不同的布局,并且现在已经进入CardLayout。在上面,有一个JPanel用于状态面板。那也是我想

  • 我是Java新手,开始学习swing,在JFrame中调整JPanel的大小时遇到问题。我将学习本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with-netbeans.html 因为最终我正在学习每一种不同的布局,现在我来到了CardLayout。在上面,有一个JPanel用于状态面板。这也是我想要做的,但是当我将一个J