我正在从事一个个人项目。有兴趣的电路模拟器。在我的项目中,我使用 JPanel 来绘制我的内容。我可以使用 AffineTransformations 移动和缩放它。每次调用paint() 时,我都会绘制用户应该看到的绘图区域。图纸可以很大(我对它的大小没有限制)。我使用一个 Rectangle 来跟踪我的绘图的可见区域并在 JPanel graphics2d 中绘制它。
现在我想添加滚动条来移动我的视口,我认为 JScrollPane 很有用。我已经看到很多线程都在谈论使用带有 JScrollPane 的 JPanel 来滚动简单的内容。你看的第一个是这个,但我不喜欢这个解决方案,因为滚动窗格确实滚动了 JPanel。在所有示例中,我应该绘制所有面板区域!我只绘制面板的可见区域,因为它非常耗时。
所以,我的问题是:如何使用滚动窗格来移动我的自定义视口并反映更改(我不想滚动用于绘图的 jpanel)?还是应该使用 JPanel 和两个简单的 JScrollbars?
我找不到从头开始实现 Scrollable 接口的简单指南。所有教程都从 JPanel 或 JLabel 开始
感谢您的任何建议!
(对不起我的英语不好)