【发布时间】:2011-01-03 17:17:13
【问题描述】:
我有以下问题:
我有一个包含图像的 JScrollPane。
滚动窗格与其他组件一起位于 JPanel 内部,以便能够使用 BorderLayout 布局整个事物(滚动窗格是 CENTER,我在 SOUTH 有一些东西)。
此 JPanel 在 JSplitPane 中。
JSplitPane 终于在 JFrame 中了。
JFrame
{
JSplitpane
{
JPanel(BorderLayout)
{
JScrollPane(CENTER)
{
BufferedImage
}
JPanel(SOUTH)
{...}
}
}
}
我现在的问题是,当我调整框架大小时,scrollPane 中的图像会调整大小,直到达到图像大小。然后图像被拉伸,我想阻止它。 我尝试将 JScrollPane 包装在带有 FlowLayout 布局的 JPanel 中。这适用于调整大小,但一旦我调整框架大小,滚动条就会消失。
我重写了 scrollPane 的 setSize() 方法,发现一旦调整框架的大小,滚动窗格的大小总是设置为图像的大小。我不知道如何解决这个问题。
感谢每一个提示。
干杯,
本
【问题讨论】:
-
我为奇怪的组件方案道歉。在预览中看起来更好......
-
如何将图像添加到滚动窗格中...
-
我对滚动窗格类进行了子类化,并在初始化期间加载了一个 BufferedImage,我通过调用 setViewportView() 将其添加到视口中
-
看到了您的更新(顺便说一句,您应该在响应中添加 cmets 而不是添加新响应),此时我建议编写一个 SSCEP(小型、自包含的示例程序)来创建主框架/滚动窗格/缓冲图像,并使用此代码更新您的问题。
标签: java resize jscrollpane