我想要获取我在面板上拖动的组件的 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/