2013-08-23 46 views
1

我正在做swing应用程序。而且我的jPanel的高度太高了。所以我想让这个面板为可滚动。: 以下是我对我的要求的描述。如何制作可滚动的jPanel

我有一个的JPanel 4周的JPanel我的意思是:

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

我加入p2, p3, p4内部p1像下面的输出:

MyOutput

像上面表示面板具有比电脑屏幕更高度高度。所以我想通过滚动显示我的面板在电脑屏幕上的所有内容。

我搜索在这里,发现了以下问题:

然而,问题的答案没有解决myproblem。

+1

您能否提供[SSCCE](http://sscce.org/)以更好地帮助soooner。 –

+0

我已经使用NetBeans IDE中的swing GUI编辑器设计了它。 – Yubaraj

+1

*“我已经使用NetBeans IDE中的swing GUI编辑器设计了它。”*将大小为200,900的图像替换为垃圾,将图像显示在标签中,将标签放在面板中,并且您已经接近SSCCE的代码是“短”,如SSCCE的第一个字。没有人想要(或要求)另一个'Netbeans GUI编辑器代码转储'。 –

回答

4

没有看到您的代码,我的猜测是您没有JScrollpane提供您想要的可滚动行为。

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); 

既然你使用NetBeans,在其中您将添加一个面板包含4个其他调色板添加JScrollpane。我想你也可以将4个面板添加到JScrollpane

2

将您的面板添加到JScrollPane。假设你只想要垂直滚动:

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

进行微调滚动金额,您可以选择实现Scrollable接口。
另请参见How to Use Scroll Panes (The Java Tutorial)

+0

谢谢,首先我会去链接你提供的。我会像你说的那样学习和尝试。 – Yubaraj

2

使用Netbeans IDE设计滚动窗格很容易。下面给出了我遵循的添加滚动窗格的步骤:

1. In Netbeans GUI editor, select all panels which requires scroll pane using CTRL+left click 
    2. Right click on the hilighted panels, select the option 'Enclose in' -> Scroll Pane. This will add a scroll pane for the selected panels. 
    3. If there are other elements than Panel(say JTree), select all the elements ->Enclose in ->Panel. Then enlose the new parent panel to scroll pane 
    4. Make sure that 'Auto Resizing' is turned on for the selected parent panel(Right click on panel -> Auto resizing -> Tick both Horizontal and vertical)