2015-11-30 7 views
0

У меня есть Box (verticalBox) в панели, с флажками внутри, и я бы сделал это прокручиваемым.Как создать прокручиваемый Java-блок?

Я попытался с

Box box = Box.createVerticalBox(); 
JScrollPane scrollArea = new JScrollPane(box, 
     JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
     JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 

panel = new JPanel(); 
panel.add(scrollArea); 
add(aggiuntaPanel, BorderLayout.CENTER); 

Я могу видеть коробку в кадре, но я не могу прокручивать его. Как я могу сделать?

ответ

2

Вам нужно сделать это наоборот. Чтобы сделать прокручиваемый компонент, вы должны заключить его в внутри a JScrollPane.

panel.add(scrollArea); 

должно быть:

scrollPanel.add(panel); 

Кроме того (как указано в комментариях по @Gorbels), вам необходимо будет установить размеры на JScrollPane перед добавлением содержащего компонент:

scrollPanel.setPreferredSize(new Dimension(WIDTH, HEIGHT)); 

Использование предпочтительных делегатов делегатов в менеджере компоновки, вы можете просто использовать setSize(), хотя есть некоторые отличия, как указано in this SO Q&A

+0

Кроме того, по умолчанию размеры по умолчанию равны нулю, поэтому, если размеры не установлены, он не покажет полосу прокрутки, даже если политика установлена ​​на 'VERTICAL_SCROLLBAR_ALWAYS' , Вам нужно установить предпочтительные размеры, по крайней мере, в 'JScrollPane' (если не' JPanel'). – Gorbles

+0

@Gorbles спасибо, что выбрал это, я по умолчанию устанавливаю размеры на все, что я создаю, поэтому я упустил это :) – Vogel612

+0

Спасибо, ребята! Мне понравился Фогель, но теперь я не вижу панели, я вижу только вертикальную полосу прокрутки. – Andrean

Смежные вопросы