我的JScrollpane
出了问题。我从列表中添加了标签。添加工作正常,我看到了标签。添加的标签数量对我来说是未知的,因此可能看起来scrollpane
的边界不够。这是使用Scrollpane的优势,因此我可以在需要时实际向下滚动。但滚动条没有出现。我知道有很多这样的问题,但我几乎尝试了所有提议的建议。我尝试了setPreferredSize()
,setLayout()
,scrollPaneApps.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_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);
}
}
那么为什么这个Scrollbar不会出现呢?
答案 0 :(得分:4)
您似乎涉及两个JScrollPanes,scrollPaneApps,您设置了一个垂直滚动条策略,您尝试添加组件,但从不添加到GUI,以及scrollPane1,您没有设置策略,从不添加组件,但执行添加到GUI。对不起,但这太疯狂了。您需要解决此问题,以便您的代码有意义:
setViewportView(...)
方法添加到其JViewport。或者您可以将一个组件添加到JScrollPane构造函数中,这只是用于将其添加到视口的语法糖。setBounds(...)
)。使用这些将使您的GUI严格,丑陋,几乎不可能在以后改进。 从不将JScrollPane的布局设置为null,如果这样做,它将停止工作。完全。答案 1 :(得分:1)
由于您没有scrollPaneApps
面板的布局,因此无法显示。所以删除这一行,它应该显示。
scrollPane1.setLayout(null);
希望它有所帮助。