目录

  • 1.绘图入门(绘制一个圆)
  • 2.绘图方法
    • 1.//画直线
    • 2.//画矩形边框
    • 3.//画椭圆边框
    • 4.//填充矩形 (设置画笔的颜色)
    • 5.//填充椭圆
    • 6.//画图片
    • 7.//画字符串
  • 3.绘制坦克
    • 1.创建父类坦克
    • 2.创建子类主角坦克
    • 定义画板画出坦克
    • 4.创建坦克对象
    • 坦克演示结果

1.绘图入门(绘制一个圆)

1.第一步

//1.先定义一个Mypanel,继承JPanel,画图行就在面板上画。
//Mypanel可以理解为一个画板
//Graphics可以理解为一个画笔,提供了很多绘图的方法

class MyPanel extends JPanel{@Overridepublic void paint(Graphics g) {//绘图方法super.paint(g);//调用父类方法完成初始化,保留g.drawOval(10,10,100,100);}
}

2.第二步
//定义一个面板
private MyPanel mp=null;

3.第三步

public drawCircle(){
//初始化面板
mp=new MyPanel();
//把面板放人窗口
this.add(mp);
//设置窗口大小
this.setSize(400,300);
this.setVisible(true);
}

package com.draw;import javax.swing.*;
import java.awt.*;/*** @version 1.0* @auther Demo龙*/
//演示如何在面板上画出圆
public class drawCircle extends JFrame{//JFrame是窗口,画框//定义一个面板private MyPanel mp=null;public static void main(String[] args) {new drawCircle();}public drawCircle(){//初始化面板mp=new MyPanel();//把面板放人窗口this.add(mp);//设置窗口大小this.setSize(400,300);//当点击窗口小叉,程序完全退出。this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}
}
//1.先定义一个Mypanel,继承JPanel,画图行就在面板上画。
//Mypanel可以理解为一个画板
//Graphics可以理解为一个画笔,提供了很多绘图的方法
class MyPanel extends JPanel{@Overridepublic void paint(Graphics g) {//绘图方法super.paint(g);//调用父类方法完成初始化,保留g.drawOval(10,10,100,100);}
}

//当点击窗口小叉,程序完全退出。
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

演示结果

2.绘图方法

package com.draw;import javax.swing.*;
import java.awt.*;/*** @version 1.0* @auther Demo龙*/
//演示如何在面板上画出圆
public class drawCircle extends JFrame{//JFrame是窗口,画框//定义一个面板private MyPanel mp=null;public static void main(String[] args) {new drawCircle();}public drawCircle(){//初始化面板mp=new MyPanel();//把面板放人窗口this.add(mp);//设置窗口大小this.setSize(400,300);//当点击窗口小叉,程序完全退出。this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);//可以显示}
}
//1.先定义一个Mypanel,继承JPanel,画图行就在面板上画。
//Mypanel可以理解为一个画板
//Graphics可以理解为一个画笔,提供了很多绘图的方法
class MyPanel extends JPanel{@Overridepublic void paint(Graphics g) {//绘图方法super.paint(g);//调用父类方法完成初始化,保留//g.drawOval(10,10,100,100);//演示绘制不同的图形..//画直线 drawLine(int x1,int y1,int x2,int y2)//g.drawLine(10, 10, 100, 100);//画矩形边框 drawRect(int x, int y, int width, int height)//g.drawRect(10, 10, 100, 100);//画椭圆边框 drawOval(int x, int y, int width, int height)//填充矩形 fillRect(int x, int y, int width, int height)//设置画笔的颜色//g.setColor(Color.blue);//g.fillRect(10, 10, 100, 100);//填充椭圆 fillOval(int x, int y, int width, int height)// g.setColor(Color.red);//g.fillOval(10, 10, 100, 100);//画图片 drawImage(Image img, int x, int y, ..)//1. 获取图片资源, /bg.png 表示在该项目的根目录去获取 bg.png 图片资源Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/QQ图片20211130145347.jpg"));g.drawImage(image, 10, 10, 320, 221, this);//画字符串 drawString(String str, int x, int y)//写字//给画笔设置颜色和字体//g.setColor(Color.black);//g.setFont(new Font("宋体", Font.BOLD, 40));//这里设置的 100, 100, 是 "北京你好"左下角//g.drawString("Demo龙", 100, 100);//设置画笔的字体 setFont(Font font)//设置画笔的颜色 setColor(Color c)}
}

1.//画直线

drawLine(int x1,int y1,int x2,int y2)
//g.drawLine(10, 10, 100, 100);
演示结果

2.//画矩形边框

drawRect(int x, int y, int width, int height)
//g.drawRect(10, 10, 100, 100);

3.//画椭圆边框

drawOval(int x, int y, int width, int height)

4.//填充矩形 (设置画笔的颜色)

fillRect(int x, int y, int width, int height)
//设置画笔的颜色
//g.setColor(Color.blue);
//g.fillRect(10, 10, 100, 100);

5.//填充椭圆

fillOval(int x, int y, int width, int height)
// g.setColor(Color.red);
//g.fillOval(10, 10, 100, 100);

6.//画图片

drawImage(Image img, int x, int y, …)
//1. 获取图片资源, /bg.png 表示在该项目的根目录去获取 bg.png 图片资源
//Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(“/QQ图片20211130145347.jpg”));
//g.drawImage(image, 10, 10, 320, 221, this);

7.//画字符串

drawString(String str, int x, int y)//写字
//给画笔设置颜色和字体
//g.setColor(Color.black);
//g.setFont(new Font(“宋体”, Font.BOLD, 40));
//这里设置的 100, 100, 是 "Demo龙"左下角
//g.drawString(“Demo龙”, 100, 100);
//设置画笔的字体 setFont(Font font)
//设置画笔的颜色 setColor(Color c)

3.绘制坦克

1.创建父类坦克

package com.tankgame01;/*** @version 1.0* @auther Demo龙*/
public class Tank {private int x;//坦克横坐标private int y;//坦克纵坐标public Tank(int x, int y) {this.x = x;this.y = y;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}
}

2.创建子类主角坦克

package com.tankgame01;/*** @version 1.0* @auther Demo龙*/
//主角坦克
public class Hero extends Tank{public Hero(int x, int y) {//构造器super(x, y);}}

定义画板画出坦克

package com.tankgame01;import javax.swing.*;
import java.awt.*;/*** @version 1.0* @auther Demo龙*/
//坦克大战的绘图区域
public class MyPanel extends JPanel {//定义我的坦克Hero hero=null;public MyPanel() {hero =new Hero(100,100);//初始胡自己的坦克}@Overridepublic void paint(Graphics g) {super.paint(g);g.fillRect(0,0,1000,750);//填充矩形默认黑色//画出坦克封装方法。drawtank(hero.getX(),hero.getY(),g,0,0);}/*** @param x      坦克的左上角x坐标* @param y      坦克的左上角y坐标* @param g      画笔* @param direct 坦克方向(上下左右)* @param type   坦克类型*///编写方法,封装坦克public void drawtank(int x,int y,Graphics g,int direct,int type){switch (type){case 0://我们的坦克g.setColor(Color.cyan);break;case 1://敌人的坦克g.setColor(Color.yellow);break;}switch (direct) {case 0://我们的坦克g.fill3DRect(x, y, 10, 60, false);g.fill3DRect(x + 30, y, 10, 60, false);//画出坦克右边轮子g.fill3DRect(x + 10, y + 10, 20, 40, false);//画出坦克盖子g.fillOval(x + 10, y + 20, 20, 20);//画出圆形盖子g.drawLine(x + 20, y + 30, x + 20, y);//画出炮筒break;default:System.out.println("暂时没有处理");}}
}

4.创建坦克对象

package com.tankgame01;import javax.swing.*;/*** @version 1.0* @auther Demo龙*/
public class tankgame01 extends JFrame {//定义MyPanelMyPanel mp=null;public static void main(String[] args) {new tankgame01();}public tankgame01() {mp=new MyPanel();this.add(mp);this.setSize(1000,750);//当点击窗口小叉,程序完全退出。this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);//可以显示}
}

坦克演示结果

【Java】绘图入门和机制,绘图方法演示(绘制坦克)相关推荐

  1. java基础—Date类的常见方法演示

    Date 中的常用方法演示 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleD ...

  2. java绘图技术,演示绘制不同的图形

    java绘图技术,演示绘制不同的图形. 做一个笔记,方便日后查找. import javax.swing.*; import java.awt.*;public class DrawCircle ex ...

  3. Java编程入门与应用 P210 例8-8——演示创建实例的方法

    Java编程入门与应用 P210 例8-8--演示创建实例的方法 显式转换和隐式转换的概念 /*** Java编程入门与应用 P210 例8-8--演示创建实例的方法** 显式转换和隐式转换的概念*/ ...

  4. Matplitlib绘图入门1,这一篇就够了

    Matplitlib绘图入门1,这一篇就够了 1. 绘制简单的图表(标题.标签轴.刻度轴.表说明) 2. 绘图辅助函数方法,绘制多个图(随机点绘制多个子图,点状.x状等) 3. 可交互式绘图(一图单线 ...

  5. 用python画耳朵_Python易学就会(四)turtle绘图入门--高级篇

    到目前为止我们通过turtle库了解了Python的基本语法,包括顺序与循环.函数的调用与方法的定义.列表与简单的数学运算等:也学习了用turtle库绘图的基本用法,包括坐标与角度.落笔抬笔.颜色与填 ...

  6. 【反射机制】Java中的反射机制,使用反射机制创建对象、访问属性、方法、构造方法等

    这篇文章主要是整理了Java中的反射机制,包括:反射机制概念.反射机制访问构造方法.反射机制访问普通方法.反射机制访问属性,反射机制访问修饰符. 目录 一.反射机制概念 二.反射机制使用 (1)加载C ...

  7. Gnuplot绘图入门1——sin(x)绘制与美化

    Gnuplot绘图入门1--sin(x)绘制与美化 gnuplot是一个跨平台且免费的交互式绘图软件,可以根据我们提供的函数或数据绘制二维/三维图形,还能生成GIF动画. 在linux命令行或wind ...

  8. python 柱状图 间距_专题第18篇:Python 绘图入门

    我的施工之路 1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编程风格专题7函数使用8面向对象编程(上篇)9面向对象编程(下篇)10十大数据结构11包和模块使用总结12Python正则专 ...

  9. python画建筑_专题 | Python 绘图入门

    我的施工之路 Python 绘图入门 这是施工系列第18篇,同时也进入到一个新的阶段:Python绘图篇.作为绘图模块的第一篇,与大家一起过过最基本的Python绘图原理. 掌握基本的绘图原理很有必要 ...

最新文章

  1. 体验Windows 7的Superbar
  2. 推荐 6 个好用到爆的 Pycharm 插件
  3. 《机器学习导论》和《统计机器学习》学习资料:张志华教授
  4. 一个配置web.xml的编程方法
  5. “Host ‘xxx’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’”
  6. 作者:曹建峰,男,腾讯研究院版权研究中心研究员,主要从事网络安全、数据保护、网络版权与内容产业等互联网法律政策研究工作。...
  7. [渝粤教育] 西安工业大学 汉语文字学 参考 资料
  8. Unity游戏开发 头发飘动效果
  9. 科斯定理(交易费用足够低,谁用的好就归谁)
  10. 德国华人餐饮外卖的春天?
  11. Linux 简单查看网卡实时网速
  12. python如何判断用户的电话属于移动、联通、还是电信的
  13. 在delphi中制作二维码
  14. 深入浅出 Docker
  15. 用户登录短信验证码的实现
  16. stm32f429ig usbvcp故障排除
  17. 计算机网络物联,物联网计算机网络安全及控制
  18. 苹果手机wifi很慢解决方法
  19. Java 中的 Swing 框架现在是不是被淘汰了?
  20. 数据结构01秦九算法

热门文章

  1. 批量修正字幕乱码(powershell)
  2. java i18n utf_Java国际化(i18n)字符串与Unicode转换
  3. LiveRTMP推送RTSP视频源进行RTMP直播
  4. highcharts特殊定制:x轴文字竖直显示(兼容各浏览器)
  5. iOS: 设置背景颜色为渐变
  6. [No0000C7]windows 10桌面切换快捷键,win10
  7. 网页中实现图片的毛玻璃效果
  8. 推荐几个经常发干货的公众号
  9. Python:tkinter Canvas 删除/清理元素方法
  10. 怎么在电脑的右键新建菜单添加.py或者其他格式的文件