繁体   English   中英

当我使用JButton时如何停止Java 7中的mousePressed(继续绘制行)

[英]How do I stop mousePressed in Java 7 (line from continuing to be drawn) when I go to use a JButton

我有一个由JButton绘制线调用的类。下面的代码通过逐点创建一条线并将每个点存储到ArrayList来在Jpanel上绘制一条线。 我只实现了mousePressed事件,该事件允许绘制线条

我遇到的问题是,当我单击另一个名为saveToFile的按钮时,该行将保存到我想要的CSV文件(ptID,x,y)中,但是当我在JPanel中单击返回时,绘制的行仍然继续每次单击鼠标即可绘制。

在将行写入CSV文件后,在SaveToFile按钮中将pts arrayList设置为null。

我不确定如何单击JButton saveToFile后如何获取mousepressed事件以停止将点写入arrayList?

我在某处读到某个事件可能被停用,这不是一个好主意

我想知道是否

  1. 我需要在saveToFile之后清空arrayList Pts并重新绘制,以便在重新绘制时从屏幕上删除该行吗?
  2. 单击saveLine按钮后,仍然可以使用其他任何方法来阻止mousePressed

抱歉,这很简单。 我正在学习Java和Swing。

DrawLine类实现ActionListener {公共无效actionPerformed(ActionEvent事件){试试{

           addMouseListener(new MouseAdapter(){

              public void mousePressed(MouseEvent e){

              int yCoord = HEIGHT - e.getYCoord();
              int xCoord = e.getXCoord();

              String pointxy = "p" + x + "," +  y;
              Point p = new Point(pointxy);
              pts.add(p);                                
              repaint();

          }


        });
      }
      // catch stuff done here

     }

}

将pt发送到csv后,尝试使用SaveToFile按钮方法重新实例化ArrayList pt。 如果您想保留这条线,则可能需要研究构建2D arraylist:

    ArrayList<ArrayList<Point>> pts;

并在每次将SaveToFile按钮按下到2D arraylist时添加一个新的ArrayList。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM