小编Fid*_*sto的帖子

放大和缩小jPanel

我想知道在使用面板的paintComponent进行缩放后,检索鼠标位置的最佳方法是什么?(相对于此缩放的位置).

这是缩放代码:

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    if(zoomer==true){    
        at.scale(zoom,zoom);//at = AffineTransform...
        zoomer=false;
    }
    g2.transform(at);
Run Code Online (Sandbox Code Playgroud)

在我的主类中,我使用鼠标侦听器私有类并覆盖mouseRelase方法:

 @Override
    public void mouseReleased(MouseEvent e) 
     e.getX();//Location of the mouse on the X axis
Run Code Online (Sandbox Code Playgroud)

我正在绘制不同的形状,如点.每个点都有它的像素位置存储,所以如果在X:20和Y:30创建它,这永远不会改变.当我调用paintComponent时,它会被放大或缩小.我的问题是,我可以在面板上找到这些点的位置,它在一些textFields中给出了一些关于我点击的点的信息.如果面板已放大/缩小,则clic的位置仍然相同,所以假设我放大,形状不会在x:20和y:30,而是在基于比例的随机位置.我怎样才能将我的clic位置调整到这个比例?

不确定我是否明确了myselft,所以如果您需要更多信息,请不要犹豫.

谢谢

java zoom jpanel affinetransform paintcomponent

2
推荐指数
1
解决办法
3633
查看次数

标签 统计

affinetransform ×1

java ×1

jpanel ×1

paintcomponent ×1

zoom ×1