Java JScrollPane 未按预期工作

标签 java swing jpanel jscrollpane paintcomponent

我有一个 JScrollPane,里面有一个 JPanel。使用 PaintComponent 方法中的以下代码来“缩放”JPanel:

g2d.translate(this.getWidth()/2, this.getHeight()/2);
g2d.scale(scaleX, scaleY);
g2d.translate(-this.getWidth()/2, -this.getHeight()/2);

现在,当我“放大”并且 JPanel 放大到比 JScrollPane 更大的程度时,我希望会出现垂直和水平滚动条,但它们没有出现。我尝试通过每次 JPanel“缩放”时将 JPanel 的首选大小设置为新缩放面板的大小来解决此问题,但是直到用户调整保存 JScrollPane 的 JFrame 的大小之前,这不会执行任何操作(也许这会触发重新验证?)。我希望有人能告诉我发生了什么事,甚至是达到预期效果的方法。谢谢!

最佳答案

I tried to fix this by setting the preferred size of the JPanel..

JScrollPane 上调用 revalidate()

关于Java JScrollPane 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13888638/

相关文章:

java - 移动游戏的 JLabel

java - java swing 中的 MusicXML 文件 - 可视化表示和动态编辑

Java - 如何只计算输入的正数

java - 将滚动条添加到我的文本区域,但我的图像未显示

java - 如何结合 JLabel 和 JFrame?

Java Swings 选择选项卡

java - 从 NavigableMap 中提取列表

java - OpenJDK 的 vm 设置了哪些系统属性来区别于 Sun/Oracle 的 vm?

java - 以与其他组件相同的方式声明 BoxLayout

java - 猜数字游戏。 field2 不显示任何内容。任何人都可以告诉我这里出了什么问题吗?