用java写一个源代码,按照以下要求:涂鸦板是一个具有趣味性的小程序,它的实现原理是通过鼠标事件,控制鼠标移动结合画图功能实现。鼠标拖拽才开始绘制,松开鼠标则停止绘制。
时间: 2024-02-24 09:58:36 浏览: 29
好的,以下是一个简单的Java涂鸦板的源代码,满足您的要求:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DoodleBoard extends JFrame implements MouseListener, MouseMotionListener {
private Graphics g;
private int lastX, lastY, newX, newY;
private boolean dragging;
public DoodleBoard() {
super("Doodle Board");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(false);
g = getGraphics();
addMouseListener(this);
addMouseMotionListener(this);
}
public void mousePressed(MouseEvent e) {
lastX = e.getX();
lastY = e.getY();
dragging = true;
}
public void mouseDragged(MouseEvent e) {
if (dragging) {
newX = e.getX();
newY = e.getY();
g.drawLine(lastX, lastY, newX, newY);
lastX = newX;
lastY = newY;
}
}
public void mouseReleased(MouseEvent e) {
dragging = false;
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseMoved(MouseEvent e) {}
public static void main(String[] args) {
DoodleBoard board = new DoodleBoard();
}
}
```
在这个涂鸦板程序中,我们使用了Java的Swing库来创建一个窗口,将其大小设置为600x400,设置默认的关闭操作为退出程序。我们还实现了MouseListener和MouseMotionListener接口,以便在鼠标事件发生时触发相应的方法。
在mousePressed方法中,我们记录下鼠标按下时的坐标,并将dragging标志设置为true,表示正在拖拽中。
在mouseDragged方法中,如果正在拖拽中,我们获取当前鼠标的坐标,并使用Graphics对象的drawLine方法来绘制一条线段,从上一次记录的坐标到当前的坐标。然后,我们将lastX和lastY更新为当前的坐标,以便在下一次绘制时使用。
在mouseReleased方法中,我们将dragging标志设置为false,表示停止拖拽。
最后,我们创建了一个DoodleBoard对象,并启动程序。现在,您可以在窗口中用鼠标涂鸦了!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)