Java 将固定大小的JPanel添加到jScrollPane
在我的项目中,我有一个滚动窗格,它可以包含各种面板,具体取决于用户操作。 顺便说一下,我希望每个面板都有一个固定的高度,另外,它们应该显示在前一个面板的下方。相反,它们会根据现有面板的数量更改其高度。 我写了一个主要的类,目的是再现当前的行为,以及一个可以解释我的目标的图像 图片: 代码:Java 将固定大小的JPanel添加到jScrollPane,java,swing,user-interface,awt,Java,Swing,User Interface,Awt,在我的项目中,我有一个滚动窗格,它可以包含各种面板,具体取决于用户操作。 顺便说一下,我希望每个面板都有一个固定的高度,另外,它们应该显示在前一个面板的下方。相反,它们会根据现有面板的数量更改其高度。 我写了一个主要的类,目的是再现当前的行为,以及一个可以解释我的目标的图像 图片: 代码: 你想要的是: JPanel scrollPaneContainer = new JPanel( new BorderLayout() ); Box panelContainer = Box.createVe
你想要的是:
JPanel scrollPaneContainer = new JPanel( new BorderLayout() );
Box panelContainer = Box.createVerticalBox();
scrollPaneContainer.add(panelContainer, BorderLayout.PAGE_START);
JScrollPane myScrollPaneContent = new JScrollPane(scrollPaneContainer);
现在,您的panelContainer的首选高度将得到尊重。如果有任何额外的空间,它将去中心。如果没有足够的空间,将显示滚动条
另外,您不应该使用静态变量。这是GUI设计拙劣的标志。您不应该在main()方法中创建GUI组件。请看视频中的演示。它们向您展示了如何创建一个面板来容纳Swing组件,然后将面板添加到框架中。“在我的项目中,我有一个滚动窗格,它可以包含各种面板,具体取决于用户操作。”听起来更适合于带有适当单元格渲染器的
JList
。它工作正常。顺便说一下,我注意到我不能将JPanel添加到某个索引中,因为Box类没有getIndexOf()方法。你有什么建议吗?
JPanel scrollPaneContainer = new JPanel( new BorderLayout() );
Box panelContainer = Box.createVerticalBox();
scrollPaneContainer.add(panelContainer, BorderLayout.PAGE_START);
JScrollPane myScrollPaneContent = new JScrollPane(scrollPaneContainer);