RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Beginner
Jun 5, 2007

Force JScrollPane to Display a Scrollbar

Some of us may like to use the null layout instead of any ready layout manager. However, when it comes to using JscrollPane or other scrollable components, I've found that the scrollbar is unable to appear even when the JComponent (such as a JPanel) is larger than the JScrollPane. The following code demonstrates a way to overcome this problem:

//enable the DefaultLookAndFeelDecorate

//create a JFrame//
JFrame jfr = new JFrame("Frame");

//create a jpanel with null layout//
JPanel jpn = new JPanel();

//create two label and add inside the jpanel, one at top and one at bottom
JLabel label1, label2;
label1 = new JLabel("Label 1"); label1.setBounds(2, 2, 100, 25);
label2 = new JLabel("Label 2"); label2.setBounds(2, 300, 100, 25);

jpn.add(label1); jpn.add(label2);

//set jpanel size[viewable] to 180 x 350
jpn.setPreferredSize(new Dimension(180, 350));

//create scrollable component and assign jpanel to be view
JScrollPane jsp = new JScrollPane(jpn);

//set jscrollpane size to 200x150
jsp.setBounds(2, 2, 200, 150);

jfr.setSize(210, 180);
The most important thing is to remember to set your JComponent's size by using the setPreferredSize(...) method and make sure JScrollPane is smaller than JPanel.

Ong Eng Hua
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date