Java:滚动条不';即使设置了“setVerticalScrollBarPolicy”和其他选项,也不会显示

Java:滚动条不';即使设置了“setVerticalScrollBarPolicy”和其他选项,也不会显示,java,swing,awt,windowbuilder,Java,Swing,Awt,Windowbuilder,我的JScrollpane有问题。我正在从列表中添加标签。添加正在工作,我看到了标签。我不知道添加了多少标签,因此滚动窗格的边框似乎不够。这就是使用滚动窗格的优点,这样我可以在需要时向下滚动。但是滚动条没有出现。我知道有很多这样的问题被问到,但我尝试了几乎所有的建议。我尝试了setPreferredSize(),setLayout(),scrollPaneApps.setVerticalScrollBarPolicy(JScrollPane.VERTICAL\u SCROLLBAR\u ALWA

我的
JScrollpane
有问题。我正在从列表中添加标签。添加正在工作,我看到了标签。我不知道添加了多少标签,因此
滚动窗格的边框似乎不够。这就是使用滚动窗格的优点,这样我可以在需要时向下滚动。但是滚动条没有出现。我知道有很多这样的问题被问到,但我尝试了几乎所有的建议。我尝试了
setPreferredSize()
setLayout()
scrollPaneApps.setVerticalScrollBarPolicy(JScrollPane.VERTICAL\u SCROLLBAR\u ALWAYS)
,但没有任何效果

public DisplayProperties() {

   setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   setBounds(100, 100, 450, 300);
   contentPane = new JPanel();
   setContentPane(contentPane);
   contentPane.setLayout(null);
   contentPane.setPreferredSize(new Dimension(450,300));

   JScrollPane scrollPane1 = new JScrollPane();
   scrollPane1.setBounds(15, 54, 195, 202);
   scrollPane1.setViewportBorder(new LineBorder(new Color(0, 0, 0)));
   scrollPane1.setPreferredSize(new Dimension(185,195));
   scrollPane1.setLayout(null);   
   scrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
   contentPane.add(scrollPane1);


    int b = 0;

    for(String s : XMLParser.ApplicationsListGUI)
    {
        b = b + 20;
        JLabel lbl = new JLabel("lbl"+s);
        lbl.setText(s);
        lbl.setBounds(10,b,100,15);
        scrollPane1.add(lbl);
        scrollPane1.revalidate();   
        lbl.setVisible(true);
    }   
}

那么为什么这个滚动条不出现呢

您似乎涉及到两个JScrollPane,scrollPaneApps,您设置了一个垂直滚动条策略,您尝试向其中添加一个组件,但从不将其添加到GUI;scrollPane1,您没有设置策略,从不将组件添加到GUI,但不将其添加到GUI。对不起,这太疯狂了。您需要修复此问题,以便代码有意义:

  • 将实际的JScrollPane(其垂直滚动条策略已设置为GUI)添加到GUI中。如果它没有添加到GUI中,那么它将永远不会被看到是有道理的
  • 不要直接将组件添加到JScrollPane,而是通过
    setViewportView(…)
    方法将组件添加到JViewport。或者,您可以将组件添加到JScrollPane构造函数中,这只不过是将其添加到视口中的语法糖
  • 避免空布局和绝对定位(避免设置边界(…)
)。使用这些将使您的GUI变得僵硬、丑陋,并且几乎不可能在以后改进永远不要将JScrollPane的布局设置为空,因为如果设置为空,它将停止工作。完全是
您似乎涉及到两个JScrollPane,即scrollPaneApps,您设置了一个垂直滚动条策略,您尝试向其添加组件,但从未将其添加到GUI,以及scrollPane1,您未设置策略,从未向其添加组件,但从未将其添加到GUI。对不起,这太疯狂了。您需要修复此问题,以便代码有意义:

  • 将实际的JScrollPane(其垂直滚动条策略已设置为GUI)添加到GUI中。如果它没有添加到GUI中,那么它将永远不会被看到是有道理的
  • 不要直接将组件添加到JScrollPane,而是通过
    setViewportView(…)
    方法将组件添加到JViewport。或者,您可以将组件添加到JScrollPane构造函数中,这只不过是将其添加到视口中的语法糖
  • 避免空布局和绝对定位(避免设置边界(…))。使用这些将使您的GUI变得僵硬、丑陋,并且几乎不可能在以后改进永远不要将JScrollPane的布局设置为空,因为如果设置为空,它将停止工作。完全是

它不会显示,因为您没有用于
滚动窗格Apps
面板的布局。因此,删除这一行,它应该会显示出来

scrollPane1.setLayout(null);

希望有帮助。

它不会显示,因为您没有用于
滚动面板Apps
面板的布局。因此,删除这一行,它应该会显示出来

scrollPane1.setLayout(null);

希望有帮助。

@HovercraftFullOfEels我不推荐它。我说把那条线去掉,但我不推荐它。我说要删除那一行。谢谢你的输入,我错误地发布了这个问题,我只有一个滚动窗格,即
scrollpane1
。发布问题时复制粘贴错误。我认为设置空值会使用默认布局。感谢您的输入,我错误地发布了问题,我只有一个滚动窗格,即
scrollpane1
。发布问题时复制粘贴错误。我认为设置空值会使用默认布局。