java paint通过鼠标画线
时间: 2023-10-17 09:15:54 浏览: 89
要通过鼠标来画线,你可以使用Java Swing库中的JPanel类和MouseListener和MouseMotionListener接口。
以下是一个简单的示例程序,可以让你通过鼠标画线:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyPanel extends JPanel implements MouseListener, MouseMotionListener {
private int x1, y1, x2, y2;
public MyPanel() {
setBackground(Color.white);
addMouseListener(this);
addMouseMotionListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.blue);
g.drawLine(x1, y1, x2, y2);
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
x1 = e.getX();
y1 = e.getY();
}
public void mouseReleased(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
repaint();
}
public void mouseDragged(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {}
public static void main(String[] args) {
JFrame frame = new JFrame("MyPanel");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setContentPane(new MyPanel());
frame.setVisible(true);
}
}
```
在这个示例程序中,我们创建了一个继承自JPanel的MyPanel类,并实现了MouseListener和MouseMotionListener接口。在构造函数中,我们将MyPanel的背景颜色设置为白色,并将MouseListener和MouseMotionListener添加到MyPanel中。
在paintComponent方法中,我们使用Graphics对象g来绘制线条。在mousePressed、mouseReleased和mouseDragged方法中,我们获取鼠标的位置,并将它们存储在x1、y1、x2和y2变量中。在mouseReleased和mouseDragged方法中,我们调用repaint方法,以便重新绘制MyPanel。
最后,在main方法中,我们创建一个JFrame对象,并将MyPanel设置为其内容面板。当我们运行程序时,我们将看到一个窗口,可以通过鼠标来画线。
阅读全文