我有以下问题:
我有包含图片的JScrollPane。
滚动窗格与其他组件一起位于JPanel内部,以便能够使用BorderLayout布局整个内容(滚动窗格是CENTER,我在南方有一些东西)。
此JPanel位于JSplitPane。
JSplitPane终于在JFrame中。
JFrame
{
JSplitpane
{
JPanel(BorderLayout)
{
JScrollPane(CENTER)
{
BufferedImage
}
JPanel(SOUTH)
{...}
}
}
}
我现在的问题是,当我调整框架大小时,scrollPane中的图像会很好地调整大小,直到达到图像大小。然后图像被拉伸,我想要防止。 我尝试将JScrollPane包装在JPanel中,该JPanel是一个带有FlowLayout的布局。这适用于调整大小的位,但是一旦我调整帧的大小,滚动条就会消失。
我覆盖了scrollPane的setSize()方法,发现一旦调整帧大小,滚动窗格的大小总是设置为图像的大小。我不知道如何解决这个问题。
每个提示都受到赞赏。
干杯,
本
答案 0 :(得分:0)
如果您使用setMaximumSize()
的宽度/高度JScrollPane
致电BufferedImage
(但尚未尝试过),我相信您会感觉良好。
作为一般性评论:为了添加孩子而重写Swing组件是个坏主意。而是创建一个控制器类,用于创建和组合基本组件。
我重读了你的问题,我想知道:图像被拉伸的问题,还是滚动条消失了?如果您想在屏幕上保留滚动条,即使无法滚动,请查看setVerticalScrollBarPolicy()
和setHorizontalScrollBarPolicy()
方法。