用JAVA实现一个拉动框
时间: 2024-03-22 13:38:44 浏览: 9
以下是一个简单的Java Swing代码,实现了一个拉动框:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class DragBox extends JFrame {
private JPanel panel;
private JLabel label;
private int x, y;
public DragBox() {
setTitle("DragBox");
setPreferredSize(new Dimension(300, 300));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setLayout(null);
label = new JLabel("Drag me!");
label.setBounds(100, 100, 100, 25);
label.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
x = e.getX();
y = e.getY();
}
});
label.addMouseMotionListener(new MouseAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
int dx = e.getX() - x;
int dy = e.getY() - y;
label.setLocation(label.getX() + dx, label.getY() + dy);
}
});
panel.add(label);
add(panel);
pack();
setVisible(true);
}
public static void main(String[] args) {
new DragBox();
}
}
```
这段代码创建了一个 `JFrame` 窗口,并在其中添加了一个 `JLabel` 标签,可以通过鼠标拖动标签移动位置。在 `label` 的 `mousePressed` 事件中记录鼠标按下时的坐标,然后在 `label` 的 `mouseDragged` 事件中计算鼠标移动的距离,并将 `label` 的位置进行相应的调整。