【Java】绘图入门和机制,绘图方法演示(绘制坦克)
目录
- 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】绘图入门和机制,绘图方法演示(绘制坦克)相关推荐
- java基础—Date类的常见方法演示
Date 中的常用方法演示 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleD ...
- java绘图技术,演示绘制不同的图形
java绘图技术,演示绘制不同的图形. 做一个笔记,方便日后查找. import javax.swing.*; import java.awt.*;public class DrawCircle ex ...
- Java编程入门与应用 P210 例8-8——演示创建实例的方法
Java编程入门与应用 P210 例8-8--演示创建实例的方法 显式转换和隐式转换的概念 /*** Java编程入门与应用 P210 例8-8--演示创建实例的方法** 显式转换和隐式转换的概念*/ ...
- Matplitlib绘图入门1,这一篇就够了
Matplitlib绘图入门1,这一篇就够了 1. 绘制简单的图表(标题.标签轴.刻度轴.表说明) 2. 绘图辅助函数方法,绘制多个图(随机点绘制多个子图,点状.x状等) 3. 可交互式绘图(一图单线 ...
- 用python画耳朵_Python易学就会(四)turtle绘图入门--高级篇
到目前为止我们通过turtle库了解了Python的基本语法,包括顺序与循环.函数的调用与方法的定义.列表与简单的数学运算等:也学习了用turtle库绘图的基本用法,包括坐标与角度.落笔抬笔.颜色与填 ...
- 【反射机制】Java中的反射机制,使用反射机制创建对象、访问属性、方法、构造方法等
这篇文章主要是整理了Java中的反射机制,包括:反射机制概念.反射机制访问构造方法.反射机制访问普通方法.反射机制访问属性,反射机制访问修饰符. 目录 一.反射机制概念 二.反射机制使用 (1)加载C ...
- Gnuplot绘图入门1——sin(x)绘制与美化
Gnuplot绘图入门1--sin(x)绘制与美化 gnuplot是一个跨平台且免费的交互式绘图软件,可以根据我们提供的函数或数据绘制二维/三维图形,还能生成GIF动画. 在linux命令行或wind ...
- python 柱状图 间距_专题第18篇:Python 绘图入门
我的施工之路 1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编程风格专题7函数使用8面向对象编程(上篇)9面向对象编程(下篇)10十大数据结构11包和模块使用总结12Python正则专 ...
- python画建筑_专题 | Python 绘图入门
我的施工之路 Python 绘图入门 这是施工系列第18篇,同时也进入到一个新的阶段:Python绘图篇.作为绘图模块的第一篇,与大家一起过过最基本的Python绘图原理. 掌握基本的绘图原理很有必要 ...
最新文章
- 体验Windows 7的Superbar
- 推荐 6 个好用到爆的 Pycharm 插件
- 《机器学习导论》和《统计机器学习》学习资料:张志华教授
- 一个配置web.xml的编程方法
- “Host ‘xxx’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’”
- 作者:曹建峰,男,腾讯研究院版权研究中心研究员,主要从事网络安全、数据保护、网络版权与内容产业等互联网法律政策研究工作。...
- [渝粤教育] 西安工业大学 汉语文字学 参考 资料
- Unity游戏开发 头发飘动效果
- 科斯定理(交易费用足够低,谁用的好就归谁)
- 德国华人餐饮外卖的春天?
- Linux 简单查看网卡实时网速
- python如何判断用户的电话属于移动、联通、还是电信的
- 在delphi中制作二维码
- 深入浅出 Docker
- 用户登录短信验证码的实现
- stm32f429ig usbvcp故障排除
- 计算机网络物联,物联网计算机网络安全及控制
- 苹果手机wifi很慢解决方法
- Java 中的 Swing 框架现在是不是被淘汰了?
- 数据结构01秦九算法
热门文章
- 批量修正字幕乱码(powershell)
- java i18n utf_Java国际化(i18n)字符串与Unicode转换
- LiveRTMP推送RTSP视频源进行RTMP直播
- highcharts特殊定制:x轴文字竖直显示(兼容各浏览器)
- iOS: 设置背景颜色为渐变
- [No0000C7]windows 10桌面切换快捷键,win10
- 网页中实现图片的毛玻璃效果
- 推荐几个经常发干货的公众号
- Python:tkinter Canvas 删除/清理元素方法
- 怎么在电脑的右键新建菜单添加.py或者其他格式的文件