У меня есть JPanel, который содержит некоторые поля. Высота JPanel ограничена, поэтому я должен разместить вокруг нее JScrollPane, чтобы люди могли прокручивать вниз.Java Swing: 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;
}
}
Будущее, поскольку я не мог правильно это понять: попытка использовать setter, то есть 'setPreferredSize()', является WRONG, поскольку orzechowskid говорит, что вам нужно переопределить getter, то есть 'getPreferredSize()', это очень важно. – mastazi