【问题标题】:Java JScrollPane Not Working as ExpectedJava JScrollPane 未按预期工作
【发布时间】:2012-12-15 02:06:03
【问题描述】:

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

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 大小之前,这不会做任何事情(也许这会触发重新验证?)。我希望有人能告诉我发生了什么,甚至可以告诉我达到预期效果的方法。谢谢!

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE

标签: java swing jpanel jscrollpane paintcomponent


【解决方案1】:

我尝试通过设置 JPanel 的首选大小来解决此问题..

拨打revalidate()JScrollPane

【讨论】:

  • 我在 JPanel 上调用了 revalidate(),它现在可以正常工作了,谢谢!但是,即使这可行,它似乎也不合法,因为我正在设置首选大小并在每次绘制组件时重新验证。我应该移动这个还是完全没问题?再次感谢。
  • “我应该移动这个还是这个完全没问题?”它“完全没问题”。调用revalidate() 有效地告诉JRE“组件已被添加,移除或调整大小。再次布局容器(如果需要,制作滚动条)”。
  • 感谢您的帮助,这绝对是我的问题的答案。
猜你喜欢
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-14
  • 2012-06-29
  • 1970-01-01
相关资源
最近更新 更多