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

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

最佳答案

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

关于Java,如果可拖动对象接触其他对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36833546/

相关文章:

java - 如何使用正则表达式检查 Java 中有效的 html 结构

css - 不要为可拖动元素显示重影

jquery - 简单的 Jquery Draggable 不适合我?

java - 如何设置 JLabel 的背景颜色?

java - 我正在尝试在 JLabel 下设置 JTextField

java - Clojure PostgreSQL JDBC 执行查询时不断出错

java - Spring MVC : Complex object as GET @RequestParam

java - Emacs org-mode 与 Java 语法高亮?

jquery - 使用 jQuery 拖动图层

java - 在java中的TextView中显示数组