gpt4 book ai didi

java - JScrollPane 缩放 View ,里面有组件

转载 作者:行者123 更新时间:2023-12-03 20:26:14 25 4
gpt4 key购买 nike

有没有我想缩放视口(viewport) View 的方法,但是内部组件的位置不会改变。设置是我有一个大的jpanel在 jscrollpane 中,我只想将 View 更改为缩放模式。这可以将对象拖放到面板内的任何位置,因此保持其 xy 位置很重要。

这是我目前的缩放代码,我所做的是使用图形 2d 比例缩放 View 。问题是位置很乱。我还想将其缩小,以便整个面板适合 jscrollpane。

//zoom in draw method using scale
g2.translate(zoomX, zoomY);

g2.scale(zoomScale, zoomScale);

g2.translate(-zoomX, -zoomY);

我也在考虑操纵视口(viewport)。这是我的视口(viewport)初始化。2000 x 1000 尺寸是面板,750 x 698 是我的视口(viewport)的范围大小。关于如何在不弄乱组件位置的情况下缩放的任何建议?也许移动 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));

最佳答案

使用两个增加/减少缩放系数的按钮。像这样重写 JScrollPane 中面板的 paintComponent 方法。

@Override
public void paintComponent(Graphics g)
{
g.scale(zoomFactor, zoomFactor);
// Change the size of the panel
setSize(origWidth * zoomFactor, origHeight * zoomFactor);
// Re-Layout the panel
validate();
super.paintComponent(g);
}

希望它有用。

关于java - JScrollPane 缩放 View ,里面有组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com