如何使可滚动到jPanel

我正在制作摇摆应用程序。 我的jPanel的高度太高了。 所以我想让这个面板成为可滚动的。以下是我对我的要求的描述。

我在一个jpanel中有四个jpanel我的意思是:

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

我在p1添加了p2, p3, p4 ,如下面的输出:

MyOutput中

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

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

  • 如何使JPanel可滚动?
  • 如何垂直滚动到JPanel?

但是,答案并没有解决我的问题。

在没有看到你的代码的情况下,我的猜测是你没有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, JScrollpane从调色板添加一个JScrollpane ,您将在其中添加一个面板以包含其他4个面板。 我想你也可以将4面板添加到JScrollpane

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

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

要微调滚动量,您可以选择实现Scrollable接口。
另请参见如何使用滚动窗格(Java教程)

使用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)