GUI之画笔,鼠标监听
package lesson3; import java.awt.*; public class TestPaint { public static void main(String[] args) { new MyPaint().loadFrame(); } } class MyPaint extends Frame{ //写一个方法来实现这个框 public void loadFrame(){ setBounds(200,200,600,400); setVisible(true); } //画笔 @Override public void paint(Graphics g) { // super.paint(g); //画笔需要有颜色 g.setColor(Color.blue); g.drawOval(100,100,100,100);//画一个⚪ g.fillOval(100,100,100,100);//画一个实心圆形 //选择颜色 g.setColor(Color.pink); g.fillRect(150,200,200,200); //要养成画笔用完还原最初的颜色 } }
鼠标监听
目的:想要实现鼠标画画
import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.PixelInterleavedSampleModel; import java.util.ArrayList; import java.util.Iterator; public class TextMouseListener { public static void main(String[] args) { new MyFrame4("画图"); } } class MyFrame4 extends Frame{ //画画需要画笔,需要监听当前鼠标的位置,需要结合来存储这个点 ArrayList points; public MyFrame4(String title){ super(title); setBounds(200,200,400,300); //存鼠标的点 points=new ArrayList<>(); //鼠标***是根据这个窗口 this.addMouseListener(new MyMouseListener()); setVisible(true); pack(); } @Override public void paint(Graphics g) { //画画监听鼠标的事件 Iterator iterator=points.iterator(); while (iterator.hasNext()){ Point point=(Point)iterator.next(); g.setColor(Color.pink); g.fillOval(point.x,point.y,10,10); } } //添加一个点到界面上 public void addPaint(Point point){ points.add(point); } private class MyMouseListener extends MouseAdapter{ //鼠标按下弹起,按住不放 @Override public void mouseClicked(MouseEvent e) { MyFrame4 myFrame = (MyFrame4) e.getSource(); //这个我们点击的时候就会在界面上产生一个点 //这个点就是鼠标的点 myFrame.addPaint(new Point(e.getX(), e.getY())); new Point(e.getX(), e.getY()); //每次点击鼠标都需要重新来画一次 myFrame.repaint(); } } }
思维理解