首页 > 解决方案 > 使用 MouseAdapter 时如何获取第一个数据?

问题描述

我想编写代码,当我按下左上区域时,选择矩形并使用拖放调整它的大小(右下固定并使用左上点调整大小)。

class MyMouseListener extends MouseAdapter {
    public void mousePressed(MouseEvent e) {
        start = e.getPoint();
        if((up.a<start.x&&start.x<up.a+10&&up.b<start.y&&start.y<up.b+10)) {//When I pressed Rectangle's left up area
            Label.setText("up");
            if(tempshape==null) {
                tempshape=shapes.get(now);
            }
            ud=1;
        }

tempshape是一个全局变量,我只想获取第一个数据,所以我声称tempshape

shape tempshape=null;
    if(ud==1) {
         else if(nowshape=="Rectangle") {
             shapes.get(now).setA(end.x);
             shapes.get(now).setB(end.y);
             shapes.get(now).setC(tempshape.c+end.x);
             shapes.get(now).setD(tempshape.d+end.y);
         }
    } ]

但是 tempshape 在我拖动时仍在更新它的值,所以我从tempshape. 我想知道:

  1. 为什么tempshape在拖动时更新?(我只tempshape在按下时写了更新代码。)
  2. 我怎么解决这个问题?

标签: javaswingawtmouselistener

解决方案


推荐阅读