【Java】韩顺平Java学习笔记 第16章 坦克大战

第16章 坦克大战

Java 坐标体系

  • 坐标一个值就是一个像素
  • 像素是密度单位 而不是长度单位

Java 绘图

  • 建立的画图的类需要继承 JPanel 类 (画板,面板)

  • 重写 JPanel 的 paint 方法引入参数Graphics(画笔)

  • Graphics提供绘图方法

    • super.paint(调用父类方法完成初始化)
    • darwOral(画椭圆和圆)
    • drawLine(直线)
    • drawRect(矩形)
    • setColor(设置画笔颜色)
    • setFont(设置画笔字体,传入的是 Font 对象)
    • fillRect(画填充矩形,先要设置画笔颜色)
    • fill3DRectd
    • fillOval
    • drawString(写字,x和y坐标对应的是左下角)
    • drawImage(画图片)
      • 获取图片资源 Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResourse());
      • 图片要放在out文件夹内的根目录下
  • paint被调用的时机

    • 窗口最小化再最大化
    • 窗口大小发生改变
    • repaint方法被调用
  • 与文件名相同的类继承 JFrame 类(画框)

  • 构造器内容:

    • 定义面板
    • 初始化面板
    • 把面板放入窗口(画框)
    • 设置窗口大小
    • 可视化
  • 参考代码

    import javax.swing.*;
    import java.awt.*;
    
    public class HomeWork1 extends JFrame {
        //定义一个面板
        private Mypanel mp = null;
        public static void main(String[] args) {
            new HomeWork1();
        }
        //构造器
        public HomeWork1(){
            //初始化面板
            mp = new Mypanel();
            //面板放入窗口
            this.add(mp);
            //设置窗口大小
            this.setSize(500,500);
            //可视化
            this.setVisible(true);
            //关闭画框时关闭程序
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
    
    class Mypanel extends JPanel{
    
        @Override
        public void paint(Graphics g) {
            super.paint(g);
            g.drawOval(10,10,300,300);
        }
    }
    
    

Java 事件处理机制

  • 委派处理模型:事件发生时,事件源将事件对象传递给“事件的监听者”,监听者再进行处理
  • 事件源:产生时间的对象,如按钮、窗口
  • 事件对象:存储事件的很多信息,如按下的按键等
  • 面板(画板)接入键盘监听器接口 KeyListener
    • 接入的类可以成为事件监听者
    • 一个类可以接入多个监听器接口
  • 按下 Alt + Enter 重写方法
    • keyTyped(字符输出时触发)
    • ketPressed(按下按键触发)
    • keyReleased(松开按键触发)
  • 传入 KeyEvent 对象
  • KetEvent 对象方法
    • getKeyCode (返回按下哪个键)

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值