带有 JPanel 可滚动的文件浏览器

发布于 2024-12-19 06:35:52 字数 459 浏览 0 评论 0原文

我正在尝试在面板中显示一堆图像。该面板将具有固定大小,并且可以滚动以显示所有图片,这是一种缩略图库。事实上,我不明白 JScrollPanel 如何与 JPanel 等一起工作。有人可以帮助获得像 Windows 资源管理器一样可滚动的 JPanel 吗?包含组件且可滚动的面板。

我有一个扩展 JPanel 的 FlowLayoutPanel ……

  public FlowLayoutPanel () 
  {
      setLayout(new FlowLayout());
      this.setSize(new Dimension(1000,1000));
  }

现在

,我可以向该面板添加图像了!但是,当 JPanel 达到最大(最大尺寸)时,我希望在右侧看到一个漂亮的滚动条,以便滚动浏览我的面板!

I'm trying to show a bunch of images in a panel. That panel would have a fix-size and will be scrollable to display all the pictures, a kind of thumbnail gallery. In fact, I don't understand how the JScrollPanel work with a JPanel and others. Could someone help to get a JPanel scrollable like a Windows Explorer? A panel containing components and scrollable.

I have a FlowLayoutPanel which extends JPanel
...

  public FlowLayoutPanel () 
  {
      setLayout(new FlowLayout());
      this.setSize(new Dimension(1000,1000));
  }

...

Now, I can add images to that panel ! But when the JPanel gets filled at is max (Maximum size), I would like to see a beautiful scrollbar on the right to just scroll through my Panel !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枕花眠 2024-12-26 06:35:52

我正在尝试在面板中显示一堆图像

也许您可以使用 JList。当水平换行开启时,它支持自动换行。

我希望在右侧看到一个漂亮的滚动条,以便滚动浏览我的面板!

那么您需要一个自定义布局管理器,而不是自定义面板。请参阅换行布局

I'm trying to show a bunch of images in a panel

Maybe you can use a JList. It supports automatically wrapping when horizontal wrap is turned on.

I would like to see a beautiful scrollbar on the right to just scroll through my Panel !

Then you need a custom layout manager, not a custom panel. See Wrap Layout.

時窥 2024-12-26 06:35:52

首先也是最重要的——不要设置 JPanel 的大小。让布局管理器决定尺寸应该是多少。您需要做的是创建一个新的 JScrollPane 并将该面板传递到 JScrollPane 的构造函数中。然后,您需要设置 JScrollPane 或其视口的 preferredSize (因为大多数布局管理器都遵循 PreferredSize,而不是大小)。

First and foremost -- Don't set the size of that JPanel. Let the layout managers decide on what the size should be. What you'll want to do is to create a new JScrollPane and pass this panel into the JScrollPane's constructor. Then you'll want to set the preferredSize of the JScrollPane or its viewport (as most layout managers respect the preferredSize, not the size).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文