所以我是一名新的 Java 程序员,我正在尝试学习如何使用 JLabel 处理 GUI 和移动图像
public class MyJava extends JFrame implements MouseListener, MouseMotionListener {
JLabel aJLabel;
public MyJava() {
this.setLayout(null);
aJLabel = new JLabel();
ImageIcon aImageIcon = new ImageIcon(this.getClass().getResource("avatar.jpg"));
aJLabel.setIcon(aImageIcon);
aJLabel.setBounds(50, 50, 200, 150);
this.getContentPane().add(aJLabel);
this.addMouseListener(this);
this.addMouseMotionListener(this);
this.setTitle("Title");
this.setSize(700, 600);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyJava();
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouseClicked, X=" + e.getX() + " ,Y=" + e.getY() + " ,Count=" + e.getClickCount());
}
@Override
public void mouseDragged(MouseEvent e) {
aJLabel.setBounds(e.getX()-120, e.getY()-120, 200, 150);
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("mousePressed");
}
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("mouseReleased");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("mouseEntered");
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
System.out.println("mouseMoved");
}}
我正在努力学习如何:
1-从我点击的鼠标位置开始拖动?
仅当鼠标在图像边界上而不是在所有 JLabel 上时才进行 2 拖动?