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

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

匿名不具ID:cping1982
140239次访问,排名549好友13人,关注者17
机密……
cping1982的文章
原创 137 篇
翻译 0 篇
转载 40 篇
评论 295 篇
鹏凌三千(cping1982)的公告
本博评论删除规则如下:

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

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

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

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

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

本人有效BLOG:

cping1982

ceponline

音乐:

风姿花传

ドラグ.スレイブ

ヒカルの碁

Believe

世界で一番ヤバイ恋

あんなに一緒だった

精忠报国

谁是大英雄

随遇而安

明天会吹什么风

逍遥游

爱江山更爱美人

最近评论
cping1982:您好,请参阅软件中的pdf手册
gmf:这个具体怎么用啊
456 OUT!:完全满足[321 GO!]要求的目前似乎不多,好像Google Talk及Kmess(能与MSN互通)是这样的,其他如百度hi,skype都只能满足你部分要求。
321 GO!:有没有比TX更好的IM软件呢?
完全FREE
公开代码
无恶意的烦人的或可选择的插件
且持续更新
bluesmile979:番茄花园怎么了?看来孤陋寡闻了,得到网上找找新闻看看。
文章分类
收藏
    相册
    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图形程序水纹倒映效果 | 旧一篇: Java[伪]寻径追踪实现(由Loonframework提供)

    在现代,摒弃传统的会话方式,很多的图形广告或游戏采用了[逐字打印]的效果来展示文字,当然,这样做的目的无非是为了突出内容或吸引眼球。

    但是这种实现方式却是值得借鉴的,以下,我给出一个JAVA实现的简单用例,需要者可以自行扩充。

    代码实现:

    package org.test;

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Panel;
    import java.awt.image.BufferedImage;

    import org.loon.framework.game.helper.ImageHelper;

    /**
     * <p>
     * Title: LoonFramework
     * </p>
     * <p>
     * Description:JAVA实现对话逐字打印(由Loonframework提供)
     * </p>
     * <p>
     * Copyright: Copyright (c) 2007
     * </p>
     * <p>
     * Company: LoonFramework
     * </p>
     * 
     * 
    @author chenpeng
     * @email:ceponline@yahoo.com.cn
     * 
    @version 0.1
     
    */


    public final class WriterType extends Panel implements Runnable {
        
    // 最大对话数
        private int _MAX_COUNT = 10;

        
    //间隔标记
        private char _flag='|';
        
        
    private Image _screen;

        
    private Graphics _bg;

        
    private Thread _L_WriterType;

        
    private static Color _L_fClr;

        
    private static Color _L_bClr;

        
    private static String _M_Text[];

        
    private int _S_COUNT;

        
    private Font _L_TTF;

        
    private int _L_Speed;

        
    private int _L_Delay;

        
    private String _C_Text[];

        
    private static int _L_COUNT;

        
    private static int _F_COUNT;
        
        
    private static int _T_COUNT;

        
    private static int _N_Text;

        
    private String _FontName;

        
    private final static int _WIDTH = 500;

        
    private final static int _HEIGHT = 375;

        
    private static int _FontStyle;

        
    private static int _FontSize;

        
    private static  Image _back = null;

        
    /**
         * 
         
    */

        
    private static final long serialVersionUID = 1L;

        
    private boolean _isRun;

        
    /**
         * 析构函数,注入背景图,循环显示的文字数组,速度,延迟
         * 
    @param img
         * 
    @param strContent
         * 
    @param speed
         * 
    @param delay
         
    */

        
    public WriterType(Image img,String[] strContent, int speed, int delay) {
            init(img,strContent, speed, delay);
        }


        
    private WriterType() {

        }


        
    public void init(Image img,String[] strContent, int speed, int delay) {
            
    //初始背景色
            setBackground(Color.BLACK);
            
    // 原始对话信息
            _M_Text = new String[_MAX_COUNT];
            
    // 缓存对话信息
            _C_Text = new String[_MAX_COUNT];

            _back
    =img;
            _FontName 
    = "宋体";

            _FontStyle 
    = 0;

            _FontSize 
    = 15;

            _L_TTF 
    = new Font(_FontName, _FontStyle, _FontSize);
            _L_bClr 
    = Color.BLACK;
            _L_fClr 
    = new Color(250250250);

            
    int length = strContent.length;

            
    // 循环次数
            _N_Text = strContent.length - 1;

            
    // 直接copy String数组
            System.arraycopy(strContent, 0, _M_Text, 0, length);

            
    //速度及延迟设定
            _L_Speed = speed;
            _L_Delay 
    = delay;
            
            
    //缓存区域
            _screen = new BufferedImage(_WIDTH, _HEIGHT, 1);
            _bg 
    = _screen.getGraphics();

            
    //开启线程
                _isRun = true;
                _L_WriterType 
    = new Thread(this);
                _L_WriterType.start();
            
        }


        
    /**
         * 停止线程
         *
         
    */

        
    public void stop() {
            _S_COUNT 
    = 0;
            _L_COUNT 
    = 0;
            _F_COUNT 
    = 0;
            
    if (_L_WriterType != null{
                _isRun 
    = false;
                _L_WriterType 
    = null;
            }

        }


        
    /**
         * 绘制图形
         
    */

        
    public void paint(Graphics g) {
            _bg.setColor(_L_bClr);
            _bg.fillRect(
    00, _WIDTH, _HEIGHT);
            _bg.setColor(_L_fClr);
            _bg.setFont(_L_TTF);
            _bg.drawImage(_back, 
    00this);
            
    for (int i = 0; i <= _L_COUNT; i++{
                
    //转换当前字体top位置
                Double top = new Double((double) _FontSize
                        
    * (3.0D + 2.0D * (double) i));
                
    if (_C_Text[i] != null{
                    _bg.drawString(_C_Text[i], 
    50, top.intValue());
                }

            }


            g.drawImage(_screen, 
    00this);
        }


        
    /**
         * 图形变更
         
    */

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


        
    /**
         * 重新开始
         *
         
    */

        
    private void begin() {
            
    //清除所有缓存数据。
            for (int i = 0; i < _C_Text.length; i++{
                _C_Text[i] 
    = null;
            }

            _F_COUNT 
    = 0;
            _S_COUNT 
    = 0;
            _L_COUNT 
    = 0;
            _T_COUNT
    ++;
            
    if (_T_COUNT > _N_Text) {
                _T_COUNT 
    = 0;
            }

            repaint();
        }


        
    public void run() {
            
    while (_isRun) {
                
    try {

                    
    //字符串累加
                    _S_COUNT++;
                    
    //当字符串完成整段对话时
                    if (_S_COUNT == _M_Text[_T_COUNT].length()) {
                        _C_Text[_L_COUNT] 
    = _M_Text[_T_COUNT].substring(_F_COUNT,
                                _S_COUNT);
                        begin();
                        Thread.sleep(_L_Delay);
                        repaint();
                    }

                    
    //比对标识设定缓存对话
                    if (_M_Text[_T_COUNT].charAt(_S_COUNT) != _flag) {
                        _C_Text[_L_COUNT] 
    = _M_Text[_T_COUNT].substring(_F_COUNT,
                                _S_COUNT)
                                
    + "_";
                    }
     else {
                        _C_Text[_L_COUNT] 
    = _M_Text[_T_COUNT].substring(_F_COUNT,
                                _S_COUNT);
                    }

                    
    //用以分辨是否转化对话组时的不同延迟
                    boolean shortSleep;
                    
    //当'|'标识存在时执行
                    if (_M_Text[_T_COUNT].charAt(_S_COUNT) == _flag) {
                        _L_COUNT
    ++;
                        _S_COUNT
    ++;
                        _F_COUNT 
    = _S_COUNT;
                        shortSleep 
    = true;
                    }
     else {
                        shortSleep 
    = false;
                    }

                    
    //刷新
                    repaint();
                    
    //判断速度
                    if (!shortSleep) {
                        Thread.sleep(_L_Speed);
                    }
     else {
                        Thread.sleep(
    10 * _L_Speed);
                    }

                }
     catch (InterruptedException e) {
                    stop();
                }

            }

        }

        
        
    public int getMaxCount() {
            
    return _MAX_COUNT;
        }


        
    public void setMaxCount(