Java 用鼠标画直线
时间: 2023-08-20 15:07:27 浏览: 54
以下是用Java Swing实现鼠标画直线的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DrawLine extends JFrame {
private int x1, y1, x2, y2;
public DrawLine() {
setTitle("Draw Line");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
x1 = e.getX();
y1 = e.getY();
}
public void mouseReleased(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
repaint();
}
});
panel.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
repaint();
}
});
getContentPane().add(panel);
}
public void paint(Graphics g) {
super.paint(g);
g.drawLine(x1, y1, x2, y2);
}
public static void main(String[] args) {
new DrawLine().setVisible(true);
}
}
```
在这个示例中,我们创建了一个JFrame窗口,并在其中添加了一个JPanel。我们使用MouseListener监听器来捕获鼠标按下和释放事件,并使用MouseMotionListener监听器来捕获鼠标拖动事件。当鼠标按下时,我们记录下鼠标的坐标作为直线的起始点。当鼠标释放或拖动时,我们记录下鼠标的坐标作为直线的终点,并调用repaint()方法来重新绘制JFrame窗口。在paint()方法中,我们使用Graphics对象的drawLine()方法来绘制直线。