如何在拖动组件时获取组件的x位置?

时间:2018-04-28 11:59:12

标签: java swing

我想获取我在面板上拖动的组件的x和在JTextField中绑定的文本,那么我该如何通过代码来实现呢?

首先我用这个方法得到我拖动的组件的x

  public void get_locationX (MouseEvent e)
  {
    int x = e.getComponent().getX();

    x_txt.setText(String.valueOf(x));
  }

然后使此事件检测何时拖动组件

    Component[] c = design_panel.getComponents();

    for (int i = 0 ; i < c.length ; i++)
    {
        c[i].addMouseListener(new MouseAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {
                get_locationX(e);
            }
        });
    }

但是当我运行代码并拖动组件时,没有任何事情发生

1 个答案:

答案 0 :(得分:1)

我通过coomponentListener解决它

这是我编辑后的代码

public void get_locationX(ComponentEvent e)
{
    int x = e.getComponent().getX();

    x_txt.setText(String.valueOf(x));
}

然后

 for (int i = 0 ; i < c.length ; i++)
    {
        c[i].addComponentListener(new ComponentAdapter() {
            @Override
            public void componentMoved(ComponentEvent e) {
                get_locationX(e);
            }
        });
    }