2

How to set scrollbar in JList and how to set the size of JList. I have a jList and in JList I want to set fix height. If I have data more then that height I want to show a scrollbar.

A.K.
  • 2,284
  • 3
  • 26
  • 35
  • Wrap it in JscrollPane – Ben Rhouma Zied May 21 '15 at 10:14
  • Beware, using `setPreferredSize` on a `JList` will prevent the `JList` from changing size in relationship to it's model. You should be using `setVisibleRowCount` and/or `setPrototypeCellValue` in order to provide hints about it's size and viewport preferred sizes. – MadProgrammer Apr 05 '16 at 21:08

2 Answers2

3

To set a JLit in scrollbar

JList<Object> list =  new JList<Object>();
JScrollPane sp = new JScrollPane(list);

To size the JList

list.setPreferredSize(new Dimension(200, 200));
  • [Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?](http://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods-in-java-swi). The problem with this is it's going to restrict both the width and height of the `JList` and prevent it from changing size in relationship to it's model – MadProgrammer Apr 05 '16 at 21:07
2

how to set scrollbar in JList

Wrap the JList to a JScrollPane

JList list = ...;
JScrollPane sp = new JScrollPane(list);
// Add the scrollpane to the container

See How to use scroll panes for more details

and how to set size of JList.

You can use JList#setVisibleRowCount to affect the the number of visible rows the JList would like to show when wrapped in a JList.

You can also use JList#setPrototypeCellValue which is the "default" value the JList will use to calculate the size of individual cells, this is intended as a performance enhancement, but will effect the width of the JList

MadProgrammer
  • 343,457
  • 22
  • 230
  • 366