是否有任何方法我想缩放视口的视图但内部组件的位置不会改变。设置是我在 jscrollpane 中有一个大 jpanel,我只想将视图更改为缩放模式。对象可以拖放到面板内的任何位置,因此保留其 xy 位置很重要。
这是我目前的缩放代码,我所做的是使用图形 2d 比例缩放视图。问题是位置一团糟。我还想将其缩小,以便整个面板适合 jscrollpane。
//zoom in draw method using scale
g2.translate(zoomX, zoomY);
g2.scale(zoomScale, zoomScale);
g2.translate(-zoomX, -zoomY);
我也在考虑操纵视口。这是我的视口初始化。2000 x 1000 尺寸是面板,750 x 698 是我视口的范围大小。关于如何在不弄乱组件位置的情况下进行缩放的任何建议?也许移动 setviewposition 是解决方案的一部分?
view = new JViewport();
view.setViewSize(new Dimension(2000,1000));
view.setExtentSize(new Dimension(750,698));
view.setViewPosition(new Point(view.getExtentSize().width/2,view.getExtentSize().height/2));