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

标签 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);
            }
        });
    }

但是当我运行代码并拖动组件时没有任何反应

最佳答案

我通过cocomponentListener解决了

这是我编辑后的代码

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);
            }
        });
    }

关于java - 如何在拖动组件时获取组件的x位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076317/

相关文章:

java - Spring Boot 中的依赖注入(inject)

java - JTable 不显示

java - 使用 BorderLayout 在 JPanel 上方 float JPanel

java - JFrame 将不会显示面板/按钮(单独的类)- java

java - Web 项目未在 Websphere 9 中启动,并出现 BValInterceptor 的 CDI 相关异常

java - Android REST Web 服务

java - JTable 自动建议抛出 .IllegalComponentStateException

java - 在手动单击组件之前焦点不起作用

java - 从 ByteBuffer 中获取 IP 包数据

Java swing 表透明度