[英]Java Swing: JScrollPane not working
我有一个包含一些字段的 JPanel。 JPanel 的高度有限,因此我必须在其周围放置一个 JScrollPane,以便人们可以向下滚动。
正如您在下面看到的,它显示完美。 但是您不能向下(或向上)滚动。
DetailPanel detail = new DetailPanel();
JScrollPane jsp = new JScrollPane(detail);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jsp.setBounds(745, 10, 235, 225);
add(jsp);
详情面板:
private void init(){
setLayout(null);
setSize(140, 400);
int x = 5, y = 0;
for(int i = 0; i < lbls.length; i++) {
JLabel lbl = new JLabel(lbls[i]);
lbl.setBounds(x, y, 200, 25);
add(lbl);
fields[i] = new JTextField();
fields[i].setBounds(x, y+26, 200, 25);
add(fields[i]);
y+=50;
}
}
您的 DetailPanel 没有与其关联的布局管理器,这意味着当您向其添加子项时它不会扩展,这意味着 JScrollPane 没有任何地方可以滚动。 在 DetailPanel 上调用setLayout()
或重写getPreferredSize()
以将其子项的高度相加并返回一个有意义的值。
我可能是错的,但我认为这可能会发生,因为 DetailPanel 的布局是 null。如果您在垂直方向使用 BoxLayout 并调用detail.setPreferredSize(new Dimension(140,400));
会发生什么情况? ?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.