java - JScrollpane 滚动条调整大小问题

标签 java resize jscrollpane

我有以下问题:

我有包含图像的 JScrollPane。

滚动 Pane 与其他组件一起位于 JPanel 内部,以便能够使用 BorderLayout 布局整个内容(滚动 Pane 位于中心,我在南部有一些东西)。

此 JPanel 位于 JSplitPane 中。

JSplitPane 最终位于 JFrame 内。

JFrame
{
 JSplitpane
 {
  JPanel(BorderLayout)
  {
   JScrollPane(CENTER)
   {
    BufferedImage
   }

   JPanel(SOUTH)
   {...}
  }
 }
}

我现在的问题是,当我调整框架大小时,scrollPane 中的图像会很好地调整大小,直到达到图像大小。然后图像被拉伸(stretch),这是我想防止的。 我尝试将 JScrollPane 包装在使用 FlowLayout 进行布局的 JPanel 中。这对于调整大小来说效果很好,但是一旦我调整框架大小,滚动条就会消失。

我重写了scrollPane的setSize()方法,发现一旦调整框架大小,scrollPane的大小总是设置为图像的大小。但我不知道如何解决这个问题。

每一个提示都值得赞赏。

干杯,

最佳答案

我相信,如果您使用 BufferedImage 的宽度/高度在 JScrollPane 上调用 setMaximumSize() ,您应该会很好(但还没有没试过)。

作为一般性评论:仅仅为了添加子组件而重写 Swing 组件是一个坏主意。相反,创建一个 Controller 类来创建和组合基本组件。

<小时/>

我重读了你的问题,想知道:问题是图像被拉伸(stretch),还是滚动条消失了?如果您想在没有任何内容可滚动的情况下将滚动条保留在屏幕上,请查看 setVerticalScrollBarPolicy()setHorizo​​ntalScrollBarPolicy() 方法。

关于java - JScrollpane 滚动条调整大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2041299/

相关文章:

java - SSl 握手异常时出现错误证书错误

java - Android库模块中的依赖

css - 背景图像不会调整大小

窗口上的 WPF 布局

Java无法将JPanel内的JTextField作为JScrollPane中的视口(viewport)来关注

java - LibGDX 闪烁

Java RandomAccessFile - 处理不同的换行符样式?

Java 和 JScrollPane : where to call setPreferredSize?

delphi - 调整 PNG 图像大小

java - 如何 : JTextPane auto wrapping NOT on word boundary such as "space", 但在字母边界上