Я не вижу свой JScrollBar (JScrollPane на JPanel)

Я создал небольшую программу, в которой у меня есть JFrame с JScrollPane. В этом JScrollPane есть панель (где я устанавливаю Viewportview) с разными JButtons. Я установил свои setBounds, установил нуль для макета панели, но я не вижу полосу jscrollbar.

JFrame jf = new JFrame("My Frame");
//other things of the frame...

JScrollPane jsp = new JScrollPane();
jsp.setBounds(0,83,301,667);

JPanel jp = new JPanel();
jp.setLayout(null);

JButton jb = new JButton("Button 1");
jb.setBounds(0,0,40,1500)  //here there is only 1 button, a big button

jp.add(jb);
jp.revalidate();
jp.repaint();
jsp.setViewportView(jp);

И вот здесь я не вижу полосу jscrollbar, она работает, только если я установил макет:

jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));

Но с этим макетом я не могу установить свои setBounds, и все помещается ниже предыдущего компонента. Спасибо и извините за мой плохой английский


person user3721668    schedule 14.07.2014    source источник
comment
1) Чтобы быстрее получить помощь, опубликуйте MCVE (минимальный, полный, проверяемый пример). 2) Графические интерфейсы Swing могут работать на разных платформах, с использованием разных PLAF, на разных размерах экрана и разрешениях с разными настройками по умолчанию для размера шрифта. Как таковые, они не способствуют точному размещению компонентов. Вместо этого используйте менеджеры компоновки или комбинации менеджеров компоновки, а также отступы и границы макета для пустого пространства. ..   -  person Andrew Thompson    schedule 14.07.2014
comment
comment
А можно просто скриншот добавить?   -  person Kishan Bheemajiyani    schedule 14.07.2014
comment
Просто вы можете сделать это autoscrolls (true); и убедитесь, что размер вашей панели прокрутки меньше размера панели, а затем добавьте jscroll.add(panel); попробуй один раз   -  person Kishan Bheemajiyani    schedule 14.07.2014
comment
@Krishna Я на 99% уверен, что проблема здесь в использовании макета null (и других аспектов кода, связанных с этим).   -  person Andrew Thompson    schedule 14.07.2014
comment
@AndrewThompson, да, братан, у тебя есть смысл, тогда мы можем изменить его на любой макет, например, даже на макет коробки :)   -  person Kishan Bheemajiyani    schedule 14.07.2014
comment
как сказал @AndrewThompson, попробуйте вместо этого изменить макет и посмотреть.   -  person Kishan Bheemajiyani    schedule 14.07.2014