画笔:Piant
学习Piant的时候我记得当时学习Python的海龟作图的时候就写过奥运五环,没想到在Java也能实现。
想看python的奥运五环参照:奥运五环
package 狂神说__Paint; 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); } public void paint(Graphics g){ super.paint(g); g.setColor(Color.blue); //g.drawOval(100,100,100,100); g.drawOval(100,100,100,100); g.setColor(Color.black); g.drawOval(200,100,100,100); g.setColor(Color.red); g.drawOval(300,100,100,100); g.setColor(Color.yellow); g.drawOval(150,150,100,100); g.setColor(Color.green); g.drawOval(250,150,100,100); } }
画图:在空白板中点点
package 狂神说__Paint; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Iterator; public class TestMouseListener { public static void main(String[] args) { new MyFrame("画图"); } } class MyFrame extends Frame{ //画笔,需要集合存储点 ArrayList points;//动态数组存储点 public MyFrame(String title){ super(title); setBounds(200,200,400,300); //存储鼠标的点 points=new ArrayList<>(); //鼠标监听器 this.addMouseListener(new MyMouseListener()); setVisible(true); } public void paint(Graphics g){ //监听鼠标事件 Iterator iterator=points.iterator(); while(iterator.hasNext()){ Point point=(Point)iterator.next(); g.setColor(Color.blue); g.fillOval(point.x,point.y,10,10); } } //添加点到界面上 public void addPaint(Point point){ points.add(point); } //适配器模式 private class MyMouseListener extends MouseAdapter{ //鼠标点击 public void mousePressed(MouseEvent e){ MyFrame myFrame=(MyFrame)e.getSource(); //点击鼠标时会出现一个点 myFrame.addPaint(new Point(e.getX(),e.getY())); //每次点击鼠标都需要重新画一次 myFrame.repaint();//刷新 } } }
键盘的监听事件:按下上下左右给出动作
package 狂神说__Paint; import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class TestKeyListener { public static void main(String[] args) { new KeyFrame(); } } class KeyFrame extends Frame{ public KeyFrame() { setBounds(1,2,300,400); setVisible(true); this.addKeyListener(new KeyAdapter() { //键盘按下出现的事件 @Override public void keyPressed(KeyEvent e) { //键盘按键 int keyCode=e.getKeyCode(); if(keyCode==KeyEvent.VK_UP){ System.out.println("按下了上键"); } else if(keyCode==KeyEvent.VK_DOWN){ System.out.println("按下了下键"); } else if(keyCode==KeyEvent.VK_LEFT){ System.out.println("按下了左键"); } else if(keyCode==KeyEvent.VK_RIGHT){ System.out.println("按下了右键"); } else{ System.out.println("按下了其他键"); } } }); } }