我有一个代码,它有一个跟随鼠标的 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/