博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
画笔Paint及模拟画图工具
阅读量:3959 次
发布时间:2019-05-24

本文共 3267 字,大约阅读时间需要 10 分钟。

画笔: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("按下了其他键"); } } }); }}

在这里插入图片描述

转载地址:http://bgxzi.baihongyu.com/

你可能感兴趣的文章
杭电ACM——4864,Task(贪心)
查看>>
北大ACM——3176,Cow Bowling(动态规划)
查看>>
北大ACM——2229,Sumsets(DP或思维)
查看>>
北大ACM——3186,Treats For The Cows(DP)
查看>>
杭电ACM——蝎子搬新家(贪心)
查看>>
杭电ACM——处理木棍(贪心)
查看>>
杭电ACM——broomstick训练营(贪心)
查看>>
杭电ACM——1018,Big Number(思维)
查看>>
杭电ACM——6463(思维)
查看>>
杭电AC——6561(思维)
查看>>
杭电ACM——1034,Candy Sharing Game
查看>>
杭电ACM——建房子(贪心)
查看>>
杭电ACM——1297,Children’s Queue(递推)
查看>>
杭电ACM——1003,Max Sum(DP)
查看>>
杭电ACM——1042,N!(思维)
查看>>
杭电ACM——1060,Leftmost Digit(思维)
查看>>
杭电ACM——1061,Rightmost Digit(思维)
查看>>
杭电ACM——1087,Super Jumping! Jumping! Jumping!(DP)
查看>>
杭电ACM——fatmouse's speed(DP)
查看>>
杭电ACM——毛毛虫(DP)
查看>>