用mouselistener绘图
时间: 2024-03-22 09:42:10 浏览: 48
好的,下面是一个使用`MouseListener`绘制图形的例子:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DrawPanel extends JPanel implements MouseListener {
private int x, y;
public DrawPanel() {
addMouseListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(x, y, 50, 50);
}
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public static void main(String[] args) {
JFrame frame = new JFrame("Draw Panel");
DrawPanel panel = new DrawPanel();
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setVisible(true);
}
}
```
这个例子创建了一个`DrawPanel`类,它继承了`JPanel`并实现了`MouseListener`接口。`DrawPanel`类在构造函数中注册了自身作为`MouseListener`,并重写了`paintComponent`方法来绘制一个红色的矩形。当鼠标被点击时,`mouseClicked`方法会被调用,它记录了当前鼠标位置,并调用`repaint`方法来刷新界面。最后,在`main`方法中创建了一个`JFrame`,将`DrawPanel`添加到其中并显示出来。
当你运行这个例子时,你可以在窗口中单击鼠标,然后在单击的位置会出现一个红色的矩形。
阅读全文