2016-04-25 119 views
0

我有一个用于拖动标签宽度鼠标的代码。Java,如果可拖动对象触及其他对象

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} 

回答

2

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

+0

好的,我会做的。 – Salmeh