Java,如果可拖动对象接触其他对象

时间:2016-04-25 06:38:15

标签: java draggable jlabel

我有一个用于拖动标签宽度鼠标的代码。

lbl_banner.addMouseListener(new MouseAdapter()
{
    @Override
    public void mousePressed(MouseEvent e) {
        //catching the current values for x,y coordinates on screen
        x_pressed = e.getX();
        y_pressed = e.getY();
    }
});

lbl_banner.addMouseMotionListener(new MouseMotionAdapter(){
    @Override
    public void mouseDragged(MouseEvent e){
        //and when the Jlabel is dragged
        setLocation(e.getXOnScreen() - x_pressed, e.getYOnScreen() - y_pressed);
    }
});

现在,我如何制作一个功能:当我在屏幕上拖动此标签时,如果通过拖动标签触摸其他对象(标签,按钮,...)来做某事。

if(//labelTouchesSomething){//do something}

1 个答案:

答案 0 :(得分:2)

虽然这在技术上不是拖动但是组件的动态移动(拖动是组件之间的内容传输),您可以计算当前移动组件与其他组件的交集(这可能需要在您的内部进行一些导航层次)。可能这可以帮到你:How do I detect the collison of components?。您还可以使用contains的方法Component来确定某些坐标是否在组件内。