import javafx.beans.binding.ListExpression;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Iterator;
//鼠标监听事件
public class TestMouseListener {
public static void main(String[] args) {
new MyFrame("paint");
}
}
class MyFrame extends Frame{
//画画需要画笔,需要监听当前的位置,需要集合来存储这个点
ArrayList points;
public MyFrame(String title){
super(title);
setBounds(100,100,500,500);
setVisible(true);
setResizable(false);
points=new ArrayList<>();
//鼠标监听器针对于窗口
this.addMouseListener(new MyMouselistener());
windowClose(this);
}
@Override
public void paint(Graphics g){
//画画需要监听鼠标的事件
Iterator iterator=points.iterator();
while (iterator.hasNext()){
Point point=(Point) iterator.next();
g.setColor(Color.red);
g.fillOval(point.x,point.y,10,10);
}
}
//添加一个点到界面上面
public void addPint(Point point){
points.add(point);
}
//适配器模式
private class MyMouselistener extends MouseAdapter {
@Override
public void mousePressed(MouseEvent e){
MyFrame frame=(MyFrame)e.getSource();
//点击时会产生一个点
frame.addPint(new Point(e.getX(),e.getY()));
frame.repaint();
}
}
static void windowClose(Frame frame){
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
}
}
鼠标监听器(GUI)
最新推荐文章于 2024-04-24 22:50:14 发布