Java-JScrollPane视图布局与SpringLayout

Java-JScrollPane视图布局与SpringLayout,java,swing,jscrollpane,springlayout,Java,Swing,Jscrollpane,Springlayout,我有一个JScrollPane,它有一个使用SpringLayout的视图组件 final JPanel panel = new JPanel(new SpringLayout()); // add stuff to panel here final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAY

我有一个
JScrollPane
,它有一个使用
SpringLayout
的视图组件

final JPanel panel = new JPanel(new SpringLayout());
// add stuff to panel here
final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
getContentPane().add(scrollPane);
JScrollPane
似乎不起作用,如有任何帮助,将不胜感激

引用

除非明确设置滚动窗格的首选大小,否则滚动窗格将根据其九个组件(视口,以及两个滚动条(如果存在)、行标题和列标题以及四个角)的首选大小进行计算。最大的因素,也是大多数程序员关心的,是用于显示客户端的视口的大小

  • 因此,您必须在
    JScrollPane
    实例上调用
    setPreferedSize(维度d)

    final JPanel panel = new JPanel(new SpringLayout());
    // add stuff to panel here
    final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    scrollPane.setPreferredSize(new Dimension(300, 300));
    add(scrollPane);
    
  • 或者重写用作查看端口的
    JPanel
    /组件的
    getPreferredSize()

其他说明:

  • 不要不必要地扩展
    JFrame

  • 只需在
    JFrame
    实例上调用
    add(…)
    ,就可以将调用转发到contentPane


这是一个很好的问题!这将是一个演示您的问题的最小可编译和可运行代码示例。。这将允许我们运行您的代码,修改它,甚至纠正它。回复前请阅读此链接,因为它提供了有关SSCCE要求的许多重要细节。
JScrollPane似乎不起作用,如有任何帮助,将不胜感激确保它可以工作,但取决于,发布一个SSCCE,仅演示JFrame、JScrollPane和JPanel(new SpringLayout()),hmmm empty JPanel从不返回任何大小,返回维度(0,0),适用于所有LayourManager
final JPanel panel = new JPanel(new SpringLayout()) {

    @Override
    public Dimension getPreferredSize() {
         return new Dimension(300, 300);
     }
 };
 // add stuff to panel here
 final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
add(scrollPane);