当前位置: 首页 > news >正文

广州网站设计建设江苏省交通建设局网站

广州网站设计建设,江苏省交通建设局网站,企业网站模板2016成套,网站开发 安全合同史上最扯Java图形绘制#xff08;J2SE#xff09;之一JAVA动画效果 很多主一听说Java界面#xff0c;一水的头大外带血压高#xff0c;兄弟我倒觉得没什么必要。其实Java这东西吧#xff0c;就简便性和其初衷而言#xff0c;真他妈就在GUI 这地界是有优势的#xff0c;单… 史上最扯Java图形绘制J2SE之一JAVA动画效果 很多主一听说Java界面一水的头大外带血压高兄弟我倒觉得没什么必要。         其实Java这东西吧就简便性和其初衷而言真他妈就在GUI 这地界是有优势的单就其2D界面开发的易用性来说借用《地下交通站》里黑瞎子——黑藤太君骂贾队长的话来说“全中国不全东亚还能找出你这样空前绝后的脸吗”。所以它不普及无外两点1.搞Java的多半不指着这东西混饭吃比如兄弟目前还被逼用SSH(StrutsSpringHibernate)混饭吃。2.效率低为了改变本来AWT的可移植性而开发Swing结果搞得层次过多效率低下反倒是走回AWT老路的SWT比较吃香害得SUN从1.6开始又给AWT扩充新类谁让Swing玩底层要靠AWT的……  兄弟不才大家也碰上个愣主我就准备以闲扯的方式鼓捣鼓捣这爹不亲娘不爱的玩意。  既然提到UI那怎么也得有图像吧图像再次也得弄张图来操作吧所以咱爷们就先从Java图像的加载入手操练起来~package org.test;import java.awt.Canvas;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.net.URL;/** * p * Title: 史上最扯Java图形绘制J2SE教程之一,图像变换。 * /p * p * Description:图像变换 * /p * p * Copyright: Copyright (c) 2007 * /p *  * author chenpeng * emailceponlineyahoo.com.cn * version 0.1 */public class SimpleAnime extends Frame {    /**     * 这个例子我用AWT来讲解实际上我们都知道使用Swing时对图 像绘制上有很多的优化但是在AWT中这些都是要我们手动来做得     * 所以入门我还是以AWT开始。其实大家都知道组件名加个J就变 Swing了……几乎不用改别的。     */    private static final long serialVersionUID 1L;    // 用于存储图片    Image act;    // 俗称的帆布啦做手机开发的话很常见    Canvas canvas new Canvas() {        private static final long serialVersionUID 1L;        /**         * 绘制图像直接调用update方法顺便说一下若以paint调用update,         * 再用update调用paint会出现很好玩的事。^^         */        public void paint(Graphics g) {            update(g);        }        /**         * 此方法仅在在发生变更时绘制图形         */        public void update(Graphics g) {            // 参数分别为加载图像所在Graphics上的left,所在top,图像width,图像height,目标对象            g.drawImage(act, getWidth() / 2 - act.getWidth(null) / 2,                    getHeight() / 2 - act.getHeight(null) / 2, act                            .getWidth(null), act.getHeight(null), this);        }    };    /**     * 简单动画的构造     *      */    public SimpleAnime() {        setTitle(图像变换);        setSize(400, 400);        // 设定背景为黑色        setBackground(Color.BLACK);        // 直接以class路径读取图片资源        URL imageUrl getClass().getResource(/image/act.jpg);        // 获取image图像实体        act Toolkit.getDefaultToolkit().createImage(imageUrl);        // 加载帆布作为背景        add(canvas);        class AnimeMouseListener extends MouseAdapter {            // 鼠标进入变更            public void mouseEntered(MouseEvent e) {                // 顺便说一下水平反转图的效果是可以用代码做到的后面讲解。                URL imageUrl getClass().getResource(/image/act0.jpg);                act Toolkit.getDefaultToolkit().createImage(imageUrl);                canvas.repaint();            }            // 鼠标离开变更            public void mouseExited(MouseEvent e) {                URL imageUrl getClass().getResource(/image/act.jpg);                act Toolkit.getDefaultToolkit().createImage(imageUrl);                canvas.repaint();            }        }        //在帆布上添加鼠标监听        canvas.addMouseListener(new AnimeMouseListener());    }    /**     * 主函数     *      * param args     */    public static void main(String[] args) {        // 实例化本类        SimpleAnime sa new SimpleAnime();        // 显示窗体        sa.setVisible(true);    }}鼠标移入鼠标在外这他妈才几个字母抛除我那些狗屁都未必同通得了的注释不到俩半字这日本的花姑娘正经说一句这是月姬的同人图……就给小爷跳上舞了那位缺德主要加个死循环的线程进去嘿不赶上停电死机的还就真格停不下来了。闲得无聊丧心病狂的我给加上个线程。package org.test;import java.awt.Canvas;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.net.URL;/** * author chenpeng * emailceponlineyahoo.com.cn * version 0.1 */public class SimpleAnime0 extends Frame {    private static final long serialVersionUID 1L;    Image act1;    Image act2;    // 是否令图像移动    boolean actMoving false;    // 初始图像编号    int actPhase 1;    Canvas c new Canvas() {        private static final long serialVersionUID 1L;        /**         * 绘制图像直接调用update方法顺便说一下若以paint调用update, 再用update调用paint会出现很好玩的事。^^         */        public void paint(Graphics g) {            update(g);        }        /**         * 此方法仅在在发生变更时绘制图形         */        public void update(Graphics g) {            if (actMoving) {                if (actPhase 1) {                    g                            .drawImage(act1, getWidth() / 2                                    - act1.getWidth(null) / 2, getHeight() / 2                                    - act1.getHeight(null) / 2, act1                                    .getWidth(null), act1.getHeight(null), this);                } else {                    g                            .drawImage(act2, getWidth() / 2                                    - act2.getWidth(null) / 2, getHeight() / 2                                    - act2.getHeight(null) / 2, act2                                    .getWidth(null), act2.getHeight(null), this);                }            }        }    };    /**     * 简单动画的构造     *      */    public SimpleAnime0(boolean isRun) {        actMoving isRun;        setTitle(图像变换);        setSize(400, 400);        // 设定背景为黑色        setBackground(Color.BLACK);        //这只是一个图像加载的演示我们完全可以定义一个Image数组然后动态加载        //做成动画播放。        URL imageUrl getClass().getResource(/image/act.jpg);        act1 Toolkit.getDefaultToolkit().createImage(imageUrl);        imageUrl getClass().getResource(/image/act0.jpg);        act2 Toolkit.getDefaultToolkit().createImage(imageUrl);        add(c);        /**         * 顺便介绍一下在Swing下有Timer类可以设定运算周期循环触发事件。 大体写法如下不过很多人还是愿意用线程……         *          * class TimerListener implements ActionListener{ public void         * actionPerformed(ActionEvent e){ if(!actMoving) return; actPhase          * (actPhase 1) ? 2 : 1; canvas.repaint(); } } javax.swing.Timer t          * new javax.swing.Timer(200,new TimerListener()); t.start();         */        Thread t new Thread(new Timer());        t.start();    }    /**     * 事件循环处理线程     *      * author chenpeng     */    class Timer implements Runnable {        public void run() {            while (true) {                if (!actMoving)                    return;                actPhase (actPhase 1) ? 2 : 1;                c.repaint();                try {                    Thread.sleep(200);                } catch (InterruptedException e) {                    e.printStackTrace();                }            }        }    }    /**     * 主函数     *      * param args     */    public static void main(String[] args) {        // 实例化本类,并触发循环事件        SimpleAnime0 sa new SimpleAnime0(true);        // 显示窗体        sa.setVisible(true);    }} posted on 2007-09-14 22:08 cping 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/cping1982/archive/2007/09/14/2258114.html
http://www.zqtcl.cn/news/351519/

相关文章:

  • 本地宁波网站建设电子商务网站建设工具都有那些
  • 网站建设的基本目标免费 wordpress企业主题
  • 专业网站建设微信商城开发规划馆网站建设
  • 网站建设公司沈阳西安建设工程信息交易中心官网
  • 青海住房和城乡建设部网站wordpress php7.3
  • 网站后台重置密码怎么做360网站怎么做网址链接
  • 广告网站建设及推广网站建设怎样推广
  • 做网站使网页不居中滁州注册公司流程和费用
  • 做网站广告经营者个性定制网站
  • 网站开发 北京外包公司软件公司网站建设
  • 网络认证入口seo免费诊断
  • 十大知名博客网站郑州企业建站公司定制
  • 视频网站如何做引流网站首页 关键词
  • 建设机械网站精英大港做网站
  • 潜山网站建设公司哪里有wordpress相册投票插件
  • 网站建设制作过程网站添加支付功能
  • 网站制作字体即墨公司做网站
  • vue 做pc网站可以吗哪个网站买域名便宜
  • 做销售网站那家好金华住房与城乡建设部网站
  • apple私人免费网站怎么下载无锡网站建设技术
  • 移动应用网站开发阶段作业信息型网站有哪些
  • 监控直播网站开发网站建设与管理总结
  • 青岛城阳网站设计免费网站成品
  • 做服装外贸的网站ghost wordpress
  • 建设银行的网站为什么这么卡网页设计用啥软件
  • 电子商务 网站开发南阳网网站建设
  • 中小型企业网络拓扑图及配置株洲seo网站推广
  • 中国镇江网站如何搭建自己的网址
  • wordpress 自动广告seo搜索引擎优化原理
  • 区块链网站用vue.js做怎么样长春站建筑