0

我有一个界面,用户可以在其中移动对象,或者移动滑块可以移动对象。我想知道是什么触发了 componentMoved 方法。如果我能做到这一点,那将是理想的:

public void componentMoved(ComponentEvent ce){
    if(ce.getSource() == Component.SOURCE_HUMAN){
      // Do something here
    }
}

我意识到这是不可能的。还有其他方法吗(无需从头开始实现我自己的组件侦听器)?

4

1 回答 1

0

在执行拖动的 MouseListener 代码中设置一个布尔变量 sourceHuman。然后您的 componentMoved 代码将类似于:

if (sourceHuman)
{
    // do something
}

sourceHuman = false;

另一种方法是有两个听众,一个用于人体运动,一个用于滑块。然后,在调用执行组件实际移动的代码之前,您将向组件添加适当的侦听器。

于 2013-10-04T15:01:56.397 回答