Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make scrollable to jPanel

I am making swing application. And there is too much height of my jPanel. So I want to make this panel as scrollable.: Following is my description of my requirement.

I have four jpanel in one jpanel I mean:

JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();

I am adding p2, p3, p4 inside p1 like following output:

MyOutput

like above showing panel has more height than computer screen height. So I want to display all content of my panel on computer screen by scrolling.

I searched here and found the following questions:

  • How to make a JPanel scrollable?
  • How do i get vertical scrolling to JPanel?

However, the answers did not solve myproblem.

like image 609
Yubaraj Avatar asked Dec 09 '22 13:12

Yubaraj


2 Answers

Without seeing your code, my guess is that you don't have a JScrollpane to provide the scrollable behaviour you want.

JPanel mainPanel = new JPanel(); //This would be the base panel of your UI
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
JPanel newPanel = new JPanel();
newPanel.add(p1);
newPanel.add(p2);
newPanel.add(p3);
newPanel.add(p4);
JScrollPane pane = new JScrollPane(newPanel);
mainPanel.add(pane);

Since you use NetBeans, add a JScrollpane from the palette in which you'll add a panel to contain the 4 others. I think you could also just add the 4 panel into the JScrollpane.

like image 52
Jonathan Drapeau Avatar answered Dec 27 '22 05:12

Jonathan Drapeau


Add your panel to a JScrollPane. Assumed that you want vertical scrolling only:

JScrollPane scrollPane=new JScrollPane(panel, 
   ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,  
   ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

For fine-tuning the scroll amounts, you can optionally implement the Scrollable interface.
See also How to Use Scroll Panes (The Java Tutorial)

like image 32
Peter Walser Avatar answered Dec 27 '22 05:12

Peter Walser