import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class PaintLineJFrame extends JFrame{
public PaintLineJFrame() {
// TODO Auto-generated constructor stub
super("用鼠标画曲线");
this.setBounds(400, 300, 400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().add(new PaintLineCanvas());
this.setVisible(true);
}
class PaintLineCanvas extends Canvas implements MouseListener ,MouseMotionListener{
Point start, end;
public PaintLineCanvas() {
start = end = null;
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
public void paint(Graphics g) {
g.setColor(Color.blue);
g.drawLine(start.x, start.y, end.x, end.y);
}
public void update(Graphics g) {
this.print(g);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
start = new Point(e.getX(), e.getY());
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
end = null;
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
if (end != null) {
start = end;
}
end = new Point(e.getX(), e.getY());
repaint();
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public static void main(String[] args) {
new PaintLineJFrame();
}
}
java作业——用鼠标画曲线
最新推荐文章于 2022-09-26 00:13:05 发布