如何在所有四个方向扩展jScrollPane?

时间:2014-12-20 17:22:04

标签: java swing graphics jscrollpane

我正在开发一个非常简单的思维导图应用程序,我使用JPanel来绘制思维导图的结构。思维导图的节点是圆形,如果在节点中写入,则结构会在该方向上扩展。我将我的JPanel放在JScrollPane中,但我的问题是,我只能将其向下扩展,或向右扩展,但它也应该向左和向上扩展。当我的JScrollPane扩展到"负面指示"如此向上或向左,我尝试计算我移动了多少个坐标,然后重新绘制整个图形,分别更改所有内容的x和y坐标。但是它仍然不起作用,它画出了正确可见的部分,但是当我向下滚动时,我的绘图的其余部分消失了。

我希望有一个解决方案,因为我已经搜索了几个小时,没有发现任何有用的东西,因为我无法想出任何其他方法来解决这个问题。谢谢您的帮助! :)

1 个答案:

答案 0 :(得分:1)

  

当我的JScrollPane应该向“负方向”向上扩展或向左扩展

您不能有负坐标,因此您需要将所有索引转换为正值。

  

如果没有,我会调整JPanel的大小。

这是关键。在将所有节点转换为正值后,您需要覆盖自定义面板的getPreferredSize(...)方法以返回适当的面板大小。

然后你调用:

revalidate();
repaint();
在面板上

以确保调用布局管理器并重新绘制节点。