以下是 Java 实现拖动框图片排序的示例代码,仅供参考:
1. 定义数据模型
```java
public class Box {
private int id;
private String imagePath;
private int x;
private int y;
private int width;
private int height;
// 省略 getter 和 setter 方法
}
```
2. 存储数据
可以使用 MySQL 数据库来存储数据,创建一个名为 `box` 的表,包含以下字段:
- `id`:框的唯一标识符,主键
- `image_path`:图片路径
- `x`:框的左上角横坐标
- `y`:框的左上角纵坐标
- `width`:框的宽度
- `height`:框的高度
3. 提供 API 接口
使用 Spring MVC 框架来实现 API 接口,示例代码如下:
```java
@RestController
@RequestMapping("/boxes")
public class BoxController {
@Autowired
private BoxService boxService;
@GetMapping("/{id}")
public Box getBox(@PathVariable int id) {
return boxService.getBoxById(id);
}
@PutMapping("/{id}")
public void updateBox(@PathVariable int id, @RequestBody Box box) {
box.setId(id);
boxService.updateBox(box);
}
}
```
4. 实现拖拽功能
在前端页面中使用 JavaScript 实现拖拽功能,示例代码如下:
```javascript
var dragging = false;
var dragStartX, dragStartY;
var offsetX = 0, offsetY = 0;
var box;
function startDrag(event) {
dragging = true;
dragStartX = event.clientX;
dragStartY = event.clientY;
box = event.target;
offsetX = parseInt(box.style.left) - dragStartX;
offsetY = parseInt(box.style.top) - dragStartY;
}
function drag(event) {
if (dragging) {
var x = event.clientX + offsetX;
var y = event.clientY + offsetY;
box.style.left = x + 'px';
box.style.top = y + 'px