`
xumingming64398966@yahoo.com.cn
  • 浏览: 40229 次
文章分类
社区版块
存档分类

JDK1.6.0新特性详解与代码示例

阅读更多

JDK6.0发布有段时间了,新的JDK也有不少新的特性,我去网上搜集了一下,列在下面和大家一起学习.
1.Desktop和SystemTray. 在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序。

我随便找了几张图,在Tray里面都是空的,没有图,可能是图太大,有xdjm知道希望告诉我.

import java.awt.AWTException;
import java.awt.Desktop;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class DesktopTrayTest ...{
    
private static Desktop desktop;
    
private static SystemTray st;
    
private static PopupMenu pm;
    
    
public static void main( String[] args ) ...{
        
if( Desktop.isDesktopSupported() ) ...{
            desktop 
= Desktop.getDesktop();
        }

        
if( SystemTray.isSupported() ) ...{
            st 
= SystemTray.getSystemTray();
            Image image 
= Toolkit.getDefaultToolkit().createImage( "http://www.51ppt.com.cn/Article/Uploadphotos/200604/20064147333288.png" );
            createPopupMenu();
            TrayIcon ti 
= new TrayIcon( image, "Demo", pm );
            
try...{
                st.add( ti );
            }
 catch( AWTException awte ) ...{
                awte.printStackTrace();
            }

        }

    }

    
public static void sendMail( String mail ) ...{
        
if( desktop != null &&
            desktop.isSupported( Desktop.Action.MAIL ) ) 
...{
            
try ...{
                desktop.mail( 
new URI( mail ) );
            }
 catch (IOException e) ...{
                e.printStackTrace();
            }
 catch (URISyntaxException e) ...{
                e.printStackTrace();
            }

        }

    }

    
public static void openBrowser( String url ) ...{
        
if( desktop != null &&
            desktop.isSupported( Desktop.Action.BROWSE )) 
...{
            
try ...{
                desktop.browse( 
new URI( url ) );
            }
 catch (IOException e) ...{
                e.printStackTrace();
            }
 catch (URISyntaxException e) ...{
                e.printStackTrace();
            }

        }

    }

    
public static void edit() ...{
        
if( desktop != null &&
            desktop.isSupported( Desktop.Action.EDIT ) ) 
...{
            File file 
= new File( "test.txt" );
            
try ...{
                
if( file.exists() == false ) ...{
                    file.createNewFile();
                }

                desktop.edit( file );
            }
 catch( IOException ioe ) ...{
                ioe.printStackTrace();
            }

        }

    }

    
public static void createPopupMenu() ...{
        pm 
= new PopupMenu();
        MenuItem ob 
= new MenuItem( "Open url" );
        ob.addActionListener( 
new ActionListener() ...{
            
public void actionPerformed( ActionEvent ae ) ...{
                openBrowser( 
"http://blog.csdn.net/xumingming64398966" );
            }

        }
);
        MenuItem sm 
= new MenuItem( "Send Mail" );
        sm.addActionListener( 
new ActionListener() ...{
            
public void actionPerformed( ActionEvent ae ) ...{
                sendMail( 
"64398966@qq.com" );
            }

        }
);
        MenuItem ed 
= new MenuItem( "Edit" );
        ed.addActionListener( 
new ActionListener() ...{
            
public void actionPerformed( ActionEvent ae ) ...{
                edit();
            }

        }
);
        MenuItem ex 
= new MenuItem( "Exit" );
        ex.addActionListener( 
new ActionListener() ...{
            
public void actionPerformed( ActionEvent ae ) ...{
                System.exit( 
0 );
            }

        }
);
        pm.add( ob );
        pm.add( sm );
        pm.add( ed );
        pm.addSeparator();
        pm.add( ex );
    }

}

 

2.Console. JDK6中提供了java.io.Console类专用来访问基于字符的控制台设备. 你的程序如果要与Windows下的cmd或者Linux下的Terminal交互,就可以用Console类代劳. 但我们不总是能得到可用的Console, 一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用. 如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就可以得到一个可用的Console实例. 下面代码演示了Console类的用法:

import java.io.Console;

public class ConsoleTest ...{
    
public static void main( String[] args ) ...{
分享到:
评论

相关推荐

    jdk1.6.0_45

    jdk1.6.0_45.tar.gz,和官网一样,需要的朋友请下载。

    JDK1.6.0_13免安装版

    JDK1.6.0_13免安装版,比那个分2个的坑货实际, 1.6.0_13版本基本绝种了,仅有的资源给大家分享

    jdk1.6.0_43.zip

    jdk1.6.0_43版本,解压缩免安装 jdk1.6.0_43版本,解压缩免安装

    jdk1.6.0_10

    JDK1.6.0_10.zip文件。JDK1.6.0_10.zip文件。JDK1.6.0_10.zip文件。JDK1.6.0_10.zip文件。

    jdk1.6.0_45下载jdk-6u45-windows-x64

    jdk1.6下载, jdk1.6.0_45下载,jdk-6u45-windows-x64下载

    jdk1.6.0_25

    jdk1.6.0_25.java 开发kit 版本1.6.0

    jdk1.6.0-12

    jdk1.6.0_12

    jdk1.6.0_30

    jdk1.6.0_30可解压使用无需安装。jdk1.6.0_30可解压使用无需安装压使用;;jdk1.6.0_30可解压使用无需安装。jdk1.6.0_30可解压使用无需安装压使用

    jdk1.6.0_10.rar

    jdk1.6.0_10.rar jdk1.6.0版本 下载 。 jdk1.6.0_10.rar jdk1.6.0版本 下载 。 jdk1.6.0_10.rar jdk1.6.0版本 下载 。 

    (JDK大全) jdk1.6.0_24 解压免安装版

    官方下载需要登录,此处用于保存方便下载,也可以方便给其他用户下载,此包为正版,版权为oracle所有。 JDK Windows jdk1.6.0_24版本 64位解压版 解压即用,不需要安装!

    jdk1.6.0_31绿色免安装版

    JAVA_HOME=D:\Program Files\Java\jdk1.6.0_31 CLASSPATH=.;D:\Program Files\Java\jdk1.6.0_31\lib\tools.jar;D:\Program Files\Java\jdk1.6.0_31\lib\dt.jar;D:\Program Files\Java\jdk1.6.0_31\bin; path=D:\...

    jdk1.6.0_38绿色版本64位

    jdk1.6.0_38绿色版本64位,不需要安装,解压出来就能用

    JDK1.6.0_45

    比较经典的jdk版本,可用于基本的开发、测试,对于刚开始接触java开发的初学者很适用,JDK1.6.0_45,目前本人所做的其中一个项目也在使用该版本的jdk

    jdk1.6.0_31_64位 for windows 免安装

    jdk1.6.0_31_64位 for windows 免安装

    jdk1.6.0中文帮助

    jdk1.6.0中文帮助

    JDK1.8 API 中文文档以及新特性pdf 讲解 带代码示例

    其中代码示例 jdk8的特性使用pdf 其中JDK1.8 API 中文文档以及新特性pdf 讲解 带代码示例 JDK1.8 API 中文文档以及新特性pdf 讲解 带代码示例

    jdk1.6.0_26_x64

    jdk1.6.0_26_x64,解压缩后配置环境变量即可,64位jdk

    window-jdk-jdk1.6.0_06

    window32位操作系统下安装的jdk

    JDK1.6.0_23

    JDK1.6.0_23安装版本的,下载之后需要安装的!然后需要配置java_home环境!

Global site tag (gtag.js) - Google Analytics