2009-09-05 112 views
0

我正在构建这个小java applet,其中我需要一个JPanel,它将支持滚动条。我尝试了不同的解决方案,包括scrollpanes等等,当我在java应用程序和IFrame中使用它们时它们工作正常,但是由于某种原因,当我将它们移动到java applets和其他面板而不是JFrames时,它们只是滚动条出现。在java中可滚动JPanel

我想要做的是构建一个小应用程序,并花费Graphic2d(它随着时间的推移而变化),一旦它达到一定的宽度,我想要一个滚动面板出现并允许在其中移动。

谢谢!

回答

4

当添加到滚动窗格的视口的组件的“首选大小”大于滚动窗格的大小时,滚动条会自动出现。

由于您正在面板上进行自定义绘画,因此您需要负责在面板更改时设置首选大小。

0

尝试在您的JPanel和/或您的JScrollPane中使用了setPreferredSize(尺寸)和/或了setMinimumSize(尺寸)

1

您将需要使用一个JScrollPane,并把内部组件(可能是基于什么扩展的JPanel你正在描述)。然后,您需要使JScrollPane填充它的父项 - JFrame,JDialog,applet窗口等。然后这将使其达到需要的大小,然后滚动条应按需显示(您可以始终打开它们也通过JScrollPane上的方法,但通常您需要按需滚动条)。

+0

我该如何获得它:“填充它的父 - JFrame,JDialog,小程序窗口等”,将它添加到内容容器? – vondip 2009-09-05 19:59:00

+0

好吧我想我明白为什么没有滚动条出现。当我把一堆按钮而不是一个graphics2d对象,我得到滚动条工作。这是与这个graphics2d对象有关 – vondip 2009-09-05 20:38:57

+0

填充它的父项取决于您使用的布局。如果你正在使用gridbag,那么你使用weightx和weighty = 1.0:在其他布局管理器上它会不同 – aperkins 2009-09-06 15:29:04