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

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

鹏凌三千(cping1982)
鹏凌三千(cping1982)的公告
本博评论删除规则如下:

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

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

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

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

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

本人有效BLOG:

cping1982

ceponline

音乐:

风姿花传

ドラグ.スレイブ

ヒカルの碁

Believe

世界で一番ヤバイ恋

あんなに一緒だった

精忠报国

谁是大英雄

随遇而安

明天会吹什么风

逍遥游

爱江山更爱美人

最近评论
cping1982:您好,此问题我已经知道,预计在9月15日左右将更新系统,因此而给您带来不便,在此仅致以十二万分的歉意。
7号:老大,注册出问题了。重装系统就不能注册了!
cping1982:您好,请参阅软件中的pdf手册
gmf:这个具体怎么用啊
456 OUT!:完全满足[321 GO!]要求的目前似乎不多,好像Google Talk及Kmess(能与MSN互通)是这样的,其他如百度hi,skype都只能满足你部分要求。
文章分类
收藏
    相册
    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实现类Windows导航栏收藏

    新一篇: JavaFx实现(2)-随机图形绘制 | 旧一篇: Java自定义JSlider UI

    Java实现类Windows导航栏

    在Windows系统中,通常都会有左侧导航栏以供选择,而Java架构下并没有给我们提供同样的组件,但是构建同样的东西实际上是很容易的。

     
    package org.loon.framework.swing.test;

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.EventQueue;
    import java.awt.Font;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.GridLayout;
    import java.awt.Insets;
    import java.awt.Rectangle;

    import java.awt.event.ComponentAdapter;
    import java.awt.event.ComponentEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    import javax.swing.BorderFactory;
    import javax.swing.ButtonGroup;
    import javax.swing.JCheckBox;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.SpringLayout;
        import javax.swing.WindowConstants;
    import javax.swing.border.Border;

    /**
     * <p>
     * Title: LoonFramework
     * </p>
     * <p>
     * Description:
     * </p>
     * <p>
     * Copyright: Copyright (c) 2007
     * </p>
     * <p>
     * Company: LoonFramework
     * </p>
     * 
     * 
    @author chenpeng
     * @email:ceponline@yahoo.com.cn
     * 
    @version 0.1
     
    */


    public class ExampleAccordion extends JPanel {
        
    /**
         * 
         
    */

        
    private static final long serialVersionUID = 1L;

        
    private final JPanel panel = new JPanel();

        
    private final JLabel label = new JLabel();

        
    // 分割窗体
        private final JSplitPane split = new JSplitPane();

        
    private final JScrollPane scroll;

        
    // 折叠效果
        public ExampleAccordion() {
            
    super(new BorderLayout());
            panel.setOpaque(
    true);
            panel.setBackground(
    new Color(116149226));
            
    // 滚动条
            scroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            scroll.getVerticalScrollBar().setUnitIncrement(
    10);
            scroll.getViewport().add(panel);

            
    // 构建数据列表
            List panelList = makeList();
            
    // 设定监听
            accordionListener exr = new accordionListener() {
                
    public void accordionStateChanged(accordionEvent e) {
                    initComponent();
                }

            }
    ;
            
    for (Iterator it = panelList.iterator(); it.hasNext();) {
                AccordionPanel epl 
    = (AccordionPanel) it.next();
                addComponent(epl);
                epl.addaccordionListener(exr);
            }

            
    // 加载滚动条监听
            scroll.getViewport().addComponentListener(new ComponentAdapter() {
                
    public void componentResized(ComponentEvent e) {
                    initComponent();
                }

            }
    );
            
    // 设定大小
            label.setPreferredSize(new Dimension(200260));

            scroll.setPreferredSize(
    new Dimension(200260));

            scroll.setMinimumSize(
    new Dimension(200260));

            split.setLeftComponent(scroll);
            split.setRightComponent(label);

            split.setDividerSize(
    1);
            split.setBackground(Color.WHITE);
            add(split, BorderLayout.CENTER);
        }


        
    public void initComponent() {
            Rectangle re 
    = scroll.getViewport().getViewRect();
            Insets ins 
    = panel.getInsets();
            
    int cw = (int) re.getWidth() - ins.left - ins.right - 20;
            
    int ch = 10;
            Component[] list 
    = panel.getComponents();
            
    for (int i = 0; i < list.length; i++{
                JComponent tmp 
    = (JComponent) list[i];
                
    int th = tmp.getPreferredSize().height;
                tmp.setPreferredSize(
    new Dimension(cw, th));
                ch 
    = ch + th + 10;
            }

            panel.setPreferredSize(
    new Dimension((int) re.getWidth(), ch + ins.top
                    
    + ins.bottom));
            panel.revalidate();
        }


        
    public void addComponent(Component label) {
            SpringLayout layout 
    = new SpringLayout();
            Component[] list 
    = panel.getComponents();
            
    if (list.length == 0{
                layout.putConstraint(SpringLayout.WEST, label, 
    10,
                        SpringLayout.WEST, panel);
                layout.putConstraint(SpringLayout.NORTH, label, 
    10,
                        SpringLayout.NORTH, panel);
            }
     else {
                JComponent cmp 
    = null;
                
    for (int i = 0; i < list.length; i++{
                    JComponent tmp 
    = (JComponent) list[i];
                    layout.putConstraint(SpringLayout.WEST, tmp, 
    10,
                            SpringLayout.WEST, panel);
                    
    if (cmp == null{
                        layout.putConstraint(SpringLayout.NORTH, tmp, 
    10,
                                SpringLayout.NORTH, panel);
                    }
     else {
                        layout.putConstraint(SpringLayout.NORTH, tmp, 
    10,
                                SpringLayout.SOUTH, cmp);
                    }

                    cmp 
    = tmp;
                }

                layout.putConstraint(SpringLayout.WEST, label, 
    10,
                        SpringLayout.WEST, panel);
                layout.putConstraint(SpringLayout.NORTH, label, 
    10,
                        SpringLayout.SOUTH, cmp);
            }

            panel.add(label);
            panel.setLayout(layout);
            initComponent();
        }


        
    private List makeList() {
            List panelList 
    = new ArrayList();
            panelList.add(
    new AccordionPanel("列表1"{
                
    /**
                 * 
                 
    */

                
    private static final long serialVersionUID = 1L;

                
    public JPanel makePanel() {
                    JPanel pnl 
    = new JPanel(new GridLayout(01));
                    JCheckBox c1 
    = new JCheckBox("aaaaaa");
                    JCheckBox c2 
    = new JCheckBox("bbbbbb");
                    c1.setOpaque(
    false);
                    c2.setOpaque(
    false);
                    pnl.add(c1);
                    pnl.add(c2);
                    pnl.setSize(
    new Dimension(060));
                    pnl.setBorder(BorderFactory.createEmptyBorder(
    515515));
                    
    return pnl;
                }

            }
    );
            panelList.add(
    new AccordionPanel("列表2"{
                
    /**
                 * 
                 
    */

                
    private static final long serialVersionUID = 1L;

                
    public JPanel makePanel() {
                    JPanel pnl 
    = new JPanel(new GridLayout(01));
                    pnl.add(
    new JLabel("辛苦遭逢起一经"));
                    pnl.add(
    new JLabel("干戈寥落四周星"));
                    pnl.add(
    new JLabel("山河破碎风飘絮"));
                    pnl.add(
    new JLabel("身世浮沉雨打萍"));
                    pnl.setSize(
    new Dimension(0100));
                    pnl.setBorder(BorderFactory.createEmptyBorder(
    515515));
                    
    return pnl;
                }

            }
    );
            panelList.add(
    new AccordionPanel("列表3"{
                
    /**
                 * 
                 
    */

                
    private static final long serialVersionUID = 1L;

                
    public JPanel makePanel() {
                    JPanel pnl 
    = new JPanel(new GridLayout(01));
                    JRadioButton b1 
    = new JRadioButton("aa");
                    JRadioButton b2 
    = new JRadioButton("bb");
                    JRadioButton b3 
    = new JRadioButton("cc");
                    b1.setOpaque(
    false);
                    b2.setOpaque(
    false);
                    b3.setOpaque(
    false);
                    pnl.add(b1);
                    pnl.add(b2);
                    pnl.add(b3);
                    ButtonGroup bg 
    = new ButtonGroup();
                    bg.add(b1);
                    bg.add(b2);
                    bg.add(b3);
                    b1.setSelected(
    true);
                    pnl.setSize(
    new Dimension(080));
                    pnl.setBorder(BorderFactory.createEmptyBorder(
    515515));
                    
    return pnl;
                }

            }
    );
            
    return panelList;
        }


        
    public static void main(String[] args) {
            EventQueue.invokeLater(
    new Runnable() {
                
    public void run() {
                    createUI();
                }

            }
    );
        }


        
    public static void createUI() {
            JFrame frame&