Java究竟怎么玩?http://blog.csdn.net/cping1982

菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

用户操作
[即时聊天] [发私信] [加为好友]
鹏凌三千(cping1982)ID:cping1982
150529次访问,排名520好友15人,关注者28
机密……
cping1982的文章
原创 138 篇
翻译 0 篇
转载 39 篇
评论 308 篇
鹏凌三千(cping1982)的公告
本博评论删除规则如下:

1、辱骂性发言,无视其辱骂对象,一律删。

2、登录发表的评论,不违背第一条者一律不删。非登录发表的评论,过激者删。

3、若发生例外情况,则为CSDN博客系统自动删除。

声援SOFF|声援珊瑚虫:如果你是珊瑚虫用户,请坚决力挺声援珊瑚虫!

平生进退如飙风,一睨人才天下空。独向苍天横冷剑,何必生我惭英雄。

本人有效BLOG:

cping1982

ceponline

音乐:

风姿花传

ドラグ.スレイブ

ヒカルの碁

Believe

世界で一番ヤバイ恋

あんなに一緒だった

精忠报国

谁是大英雄

随遇而安

明天会吹什么风

逍遥游

爱江山更爱美人

最近评论
sisharen:可以发个install4j的破解版给我吗?万分感谢啊!我找了很久都没找到,我的邮箱是qqyongqiangqq@126.com
sisharen:不错!我喜欢这篇文章!
sisharen:我把这样制作出来的rt.jar替换原来我可以运行的原89M里面的45M的rt.jar,不行啊
sisharen:我把这样制作出来的rt.jar替换原来我可以运行的原89M里面的45M的rt.jar,不行啊
sisharen:怎么我怎么搞都不成功的啊,楼主帮下忙啊
文章分类
收藏
    相册
    Java的PC游戏开发
    Java中的A*(A star)寻径实现
    Java仿雷电及其源代码
    Java制作的类祖码游戏-数字祖码
    Java实现窗体中角色逐渐风化效果
    Java版吃豆游戏
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[2]——踏破红尘
    Java[伪]寻径追踪实现
    JAVA中[人工无脑]系统(chatbot)的实现
    Java中2.5D游戏(斜45度角)的设计与实现(1)
    Java中2.5D游戏(斜45度角)的设计与实现(2)
    Java仿太阁立志传5
    JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
    JAVA实现拼图游戏
    Java来做马里奥[0]—让精灵再次舞动
    Java来做马里奥[1]—木叶传承
    Java来做马里奥[2]—食不厌精
    Java来做马里奥[3]—杂兵登场
    Java模拟桌球打击处理及绘制
    Java汉诺塔测试
    Java炸弹人实现及源码
    人生如梦游戏间,JAVA游戏开源开发讲座[番外篇]之AVG开发——皮影
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[0]——月晕础润
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[1]——风云初现
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[3]——邯郸学步
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[4]——一步莲华
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[5]——一树双花
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[6]——走马观花
    史上最扯Java图形绘制(J2SE)之一JAVA动画效果
    沉寂的国人开源项目
    bo-blog(blog系统,php项目)
    DockPanel Suite [Microsoft .NET Framework Winform UI]
    Hocate web framework[web框架]
    Loonframework-DAO[持久层框架]
    Loonframework-GAME[游戏框架,尚未发布]
    Loonframework-WEB[web框架,尚未发布]
    Luntbuild(软件管理工具)
    magike(php博客)
    myseelite(p2p流媒体系统,c++项目)
    newxy(新坐标)[web框架]
    opencrx(crm系统)
    redlion(web框架)
    x2blog(asp.net博客系统)
    YOYOPlayer(音乐播放器)
    袋鼠egg(服务器)
    经典Blog
    # gzfqh的专栏 →底层代码研究(病毒及汇编)(RSS)
    # java 3D 游戏编程(RSS)
    ApoGames(德国某人的Java游戏作品展示)
    Struts框架应用
    Struts框架应用~
    千里冰封[JAVA 浓香四溢]
    网络安全圈子
    经典站点
    Google
    IBM中国站
    JavaGame开发论坛
    JAVA开源大全
    Java爱好者
    Struts标签文档
    SUN 中国社区
    中国IT实验室
    数据库专区
    偶的其它应用实例
    C#将图像文件压缩为AVI文件播放
    Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布)
    Java图形程序水纹倒映效果
    Java输出竖排古典文字
    .NET在线漫画下载程序
    C#转换AVI文件为BMP文件
    ClassLoader调用外部jar包
    ExtJS2.0开发与实践笔记[0]——初识ExtJS
    ExtJS2.0开发与实践笔记[1]——ExtJS中的Dialog与Form
    ExtJS2.0开发与实践笔记[2]——Ext中的Layout
    ExtJS2.0开发与实践笔记[3]——Ext中的Menu
    ExtJS2.0开发与实践笔记[4]——Ext中的动画处理
    JavaFx实现(1)-渐变效果
    JavaFx实现(2)-随机图形绘制
    Java中DAO的实现
    Java中Image翻转操作
    Java中将byte[]转为Blob对象
    Java中的A*(A star)寻径实现
    Java制作绿色软件(GreenJVM_0.1.0发布)
    JAVA图形操作类
    Java图形程序中的对话逐字显示实现
    Java实现任意文件在bmp中的隐藏与导出
    JAVA实现可设置背景的MDI窗口
    Java实现嵌入式数据库(文本数据库)代码实例
    Java实现类Windows导航栏
    Java正则表达式入门
    JAVA版JAVA IDE环境(源码)
    JAVA线程池的简单实现及优先级设置
    Java自定义JSlider UI
    Java获得系统环境变量
    Java音乐播放类
    ResultSet转为实体对象
    SWT行,AWT/Swing也行系列(1)-实现半透明及不规则窗体
    在JTable中加载进度条及进行操作
    在Swing中使用Html标签
    在SWT中使用ChartDirector
    浅谈java.util.concurrent包的并发处理
    浅谈Java集合中Array(数组)的应用
    精简JRE体积
    通过exe启动class
    偶的文章
    《三国以后有几国》
    中国本土化编程(汉语编程)之我见
    从珊瑚虫事件,看为什么中国出不了比尔.盖茨
    佛与专家
    叹今人无气节而作歌
    国产开源项目的七宗罪
    对Hibernate使用之愚见
    对Java(J2SE PC)开发之怪现象之我见
    浅谈命名规范[纯属强辩]
    灭了珊瑚虫,下一个是谁?
    率性而作无题歌一首
    百度对“十进制网络”的官方态度
    耻民
    论番茄花园的倒掉
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Java实现窗体中角色逐渐风化效果收藏

    新一篇: Java中将byte[]转为Blob对象 | 旧一篇: 迎春诗——甲子苍茫十二弦

    效果图如下:


    源码:
    AirslakeImage.java
    package org.test;

    import java.awt.Button;
    import java.awt.Color;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Panel;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.image.PixelGrabber;
    import java.util.Random;

    import org.loon.framework.game.image.Bitmap;
    import org.loon.framework.game.image.LColor;
    /**
     * <p>Title: LoonFramework</p>
     * <p>Description:java实现图片风化效果</p>
     * <p>Copyright: Copyright (c) 2007</p>
     * <p>Company: LoonFramework</p>
     * 
    @author chenpeng  
     * @email:ceponline@yahoo.com.cn 
     * 
    @version 0.1
     
    */

    public class AirslakeImage extends Panel implements Runnable, ActionListener {

        
    /**
         * 
         
    */

        
    private static final long serialVersionUID = 1L;
        
        
    static final public int _WIDTH = 400;
        
        
    static final public int _HEIGHT = 400;
        
        
    private boolean _isRun=false;

        
    private Image _img;
        
        
    private Image _screen;
        
        
    private Graphics _back;

        
    private int _imgWidth;
        
    private int _imgHeight;

        
    private Fraction[] _fractions;

        
    private Thread _timer;

        
    private Button _meganteButton;
        
    private Button _revivalButton;


        
    private Random _rand = new Random();

        
    public AirslakeImage() {
            
            _screen
    =new Bitmap(_WIDTH,_HEIGHT).getImage();
            
            _back
    =_screen.getGraphics();
            
            setSize(_WIDTH, _HEIGHT);

            _meganteButton 
    = new Button("破碎图片");
            _meganteButton.addActionListener(
    this);
            add(_meganteButton);

            _revivalButton 
    = new Button("还原图片");
            _revivalButton.addActionListener(
    this);
            add(_revivalButton);
            _revivalButton.setEnabled(
    false);

            loadImage(
    "role.png");

            init(_img);
        }

        
        
    /**
         * 初始化image图像,分解其中像素
         * 
    @param _img
         
    */

        
    private void init(Image _img) {
            
    if (_timer != null{
                _timer
    =null;
                _isRun
    =false;
            }

            _fractions 
    = new Fraction[_imgWidth * _imgHeight];
            PixelGrabber pg 
    = new PixelGrabber(_img, 00, _imgWidth, _imgHeight, true);
            
    try {
                pg.grabPixels();
            }
     catch (InterruptedException e) {
                e.printStackTrace();
            }

            
    int pixel[] = (int[]) pg.getPixels();
         
            
    //重新封装像素
            for (int y = 0; y < _imgHeight; y++{
                
    for (int x = 0; x < _imgWidth; x++{
                    
    int n = y * _imgWidth + x;
                    _fractions[n] 
    = new Fraction();
                    
    double angle = _rand.nextInt(360);
                    
    double speed = 10.0 / _rand.nextInt(30);
                    _fractions[n].x 
    =   x+90;
                    _fractions[n].y 
    =   y+20;
                    _fractions[n].vx 
    = Math.cos(angle * Math.PI / 180* speed;
                    _fractions[n].vy 
    = Math.sin(angle * Math.PI / 180* speed;
                    _fractions[n].color 
    = pixel[n];
                    _fractions[n].countToCrush 
    = x / 6 + _rand.nextInt(10);
                }

            }

        }

        
        
    public void update(Graphics g){
            paint(g);
        }

        
        
    public void paint(Graphics g){
            
    //变更背景色
            _back.setColor(Color.WHITE);
            
    //清空背景
            _back.fillRect(00, _WIDTH, _HEIGHT);

            
    for (int n = 0; n < _imgWidth * _imgHeight; n++{
                
    int x = (int) _fractions[n].x;
                
    int y = (int) _fractions[n].y;
                LColor color
    =LColor.getLColor(_fractions[n].color);
                
    //纯黑色区域不读取
                if(!LColor.equals(color, LColor.fromArgb(0,0,0))){
                
    //获得rgb三色
                int red = color.R;
                
    int green = color.G;
                
    int blue = color.B;
                _back.setColor(
    new Color(red, green, blue));
                
    //绘制
                _back.drawLine(x, y, x, y);
                }

            }

            g.drawImage(_screen, 
    00this);
        }


        
    public void actionPerformed(ActionEvent e) {
            
    if (e.getSource() == _meganteButton) {
                execute();
                _meganteButton.setEnabled(
    false);
                _revivalButton.setEnabled(
    true);
            }
     else if (e.getSource() == _revivalButton) {
                init(_img);
                repaint();
                _meganteButton.setEnabled(
    true);
                _revivalButton.setEnabled(
    false);
            }

        }




        
    /**
         * 加载图像
         * 
    @param filename
         
    */

        
    private void loadImage(String filename) {
            Bitmap bitmap 
    = new Bitmap(("./image/"+filename).intern());
            
    //替换透明区域颜色(象素化后,转为rgb形式的透明区域色值将显示为r=0,g=0,b=0),可以直接用pixel识别透明区域,也可以替换或跳过该区域)
            _img=bitmap.getImage();
            _imgWidth 
    = _img.getWidth(this);
            _imgHeight 
    = _img.getHeight(this);
        }



      
        
    /**
         * 执行操作
         *
         
    */

        
    private void execute() {
            _timer 
    = new Thread(this);
            _timer.start();
            _isRun
    =true;
        }

        
        
    class Fraction {
            
    //图片在窗体中x
            public double x;
            
    //图片在窗体中y
            public double y;
            
    //显示图x
            public double vx;
            
    //显示图y
            public double vy;
            
    //color
            public int color; 
            
    //变形颗粒数量
            public int countToCrush; 
        }

        
            
    public void run() {
                
    while(_isRun){
                
    for (int n = 0; n < _imgWidth * _imgHeight; n++{
                    
    if (_fractions[n].countToCrush <= 0
                        _fractions[n].x 
    += _fractions[n].vx;
                        _fractions[n].y 
    += _fractions[n].vy;
                        _fractions[n].vy 
    += 0.1
                    }
     else {
                        _fractions[n].countToCrush
    --;
                    }

                 
                }

                
    //间隔
                try {
                    Thread.sleep(
    60);
                }
     catch (InterruptedException e) {
                    e.printStackTrace();
                }

                repaint();
                }

            }

        
        
        
    public static void main(String[]args){
            java.awt.EventQueue.invokeLater(
    new Runnable() {
                
    public void run() {
                    Frame frm 
    = new Frame("java实现图片风化效果");
                    frm.add(
    new AirslakeImage());
                    frm.setResizable(
    false);
                    frm.setSize(_WIDTH, _HEIGHT);
                    frm.addWindowListener(
    new WindowAdapter(){
                        
    public void windowClosing(WindowEvent e){
                            System.exit(
    0);
                        }

                    }
    );
     &nb