java - 在鼠标上次所在的位置制作一个JLabel?

标签 java swing

我有一个代码,它有一个跟随鼠标的 JLabel。每当用户退出窗口时,JLabel 都会显示“退出”,并停留在用户上次所在的位置。问题是,“退出”仅在从顶部退出窗口时可见。这是因为 JLabel 位于鼠标下方。我想让标签向下移动,这样如果它向上退出我可以看到它,如果它向下退出我可以向上移动。我知道如何移动它,但是我们可以根据条件移动它吗? 它可以很好地显示在窗口中,我只需根据退出位置将其放置在鼠标的不同侧面即可。 这是我的代码:

class giraffemousehandler extends MouseAdapter implements MouseListener, MouseMotionListener { //MouseAdapter makes it so that you don't have to have all 7 implemented mouse listener methods

    @Override
    public void mouseMoved(MouseEvent e) {
        // TODO Auto-generated method stub
        status.setBounds(e.getX(), e.getY(), 50, 60); //Makes JLabel follow mouse

    }

    @Override
    public void mouseEntered(MouseEvent e) {

        status.setText("Entered");

    }

    @Override
    public void mouseExited(MouseEvent e) {

        status.setText("exited");
        // status.setBounds(e.getX(), e.getY(), 5, 6);

    }

}
}

非常感谢您花时间阅读本文,我非常感谢您为帮助程序员同行所付出的努力!

最佳答案

public class GiraffeMouseHandler extends MouseAdapter implements MouseMotionListener
{

    public void mouseEntered( MouseEvent event )
    {
        status.setText( "Entered" );
    }

    public void mouseExited( MouseEvent event )
    {
        status.setText( "Exited" ); 
    }

    public void mouseMoved( MouseEvent event )
    {
        //dimension is a reference of dimension of the main frame
        if( ( dimension.getHeight() - event.getY() ) < 65 )
            status.setBounds( event.getX(), (int)dimension.getHeight() - 65 , 50, 60 );
        else if( ( dimension.getWidth() - event.getX() ) < 50 )
            status.setBounds( (int)dimension.getWidth() - 50, event.getY(), 50, 60 );
        else
            status.setBounds( event.getX(), event.getY(), 50, 60 );         
    }

}

关于java - 在鼠标上次所在的位置制作一个JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32281514/

相关文章:

java - 如何在拖放过程中在 Main-JTable 上绘制 Row Header-JTable 的 Dropline?

java - 从 JTextPane 中的任何偏移获取样式

java - 将 jsp 元素值分配给 struts2 文本字段

java - 用更通用的方式替换 elseif

java - 当我只有 T 时,如何返回 Interface<T> 的实例?

java - 抽象类中的可选方法实现

java - JFrame 不会关闭

java - 获取 Jersey 反序列化为子类

java - 组件的奇怪问题

java - 居中 jFrame