疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

拾遗补缺-jdk6新特性

Posted on 2009-11-02 15:01 疯狂 阅读(333) 评论(0)  编辑  收藏 所属分类: java

1,输出到文件 java Hello.java > hello.txt 也可以>>吧内容附加到后面

2,integer各种toXXX方法:Integer.toBinaryString(2147483647);Integer.toHexString(2147483647);Integer.toOctalString(2147483647)

3,System.out.printf("%x%n", 19);System.out.printf("%o%n", 19);System.out.printf("%d%n", 19);

4,

 

jdk6新特性:

  java.lang包:

添加string的isEmpty()方法

public boolean isEmpty() { return count == 0; }

 


 System.arraycopy(src, srcPos, dest, destPos, length)

 

public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

 


 

System.console().readLine();

 System.console().readPassword();

 

java.awt

 1  java -splash 指定启动画面的图片 例如java -splash:a.jpg -jar myjar.jar 支持的图片 jpg gif png gif

也可以在manifest里指定:例如:

Manifest-Version: 1.0 Main-Class: main.java SplashScreen-Image:a.jpg


 如果要控制图片可以参考java.awt包的api

2 系统托盘:

public static void main(String ar[]){
if(SystemTray.isSupported()){
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("bi.gif");
TrayIcon trayIcon = new TrayIcon(image,"这是托盘信息");
try {
tray.add(trayIcon);
} catch (AWTException e) {
System.out.println("无法取得系统工具栏");
e.printStackTrace();
}
}else{
System.out.println("无法取得系统工具栏");
}

}

 如果想添加右键菜单就可以使用TrayIcon的另外一个构造方法

TrayIcon(Image image, String tooltip, PopupMenu popup)

 完整代码示例:

public static void main(String ar[]){
if(SystemTray.isSupported()){
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("bi.gif");

PopupMenu pMenu = new PopupMenu();
MenuItem item1 = new MenuItem("开启");
MenuItem item2 = new MenuItem("关闭");
pMenu.add(item1);
pMenu.add(item2);
TrayIcon trayIcon = new TrayIcon(image,"这是托盘信息",pMenu);
try {
tray.add(trayIcon);
} catch (AWTException e) {
System.out.println("无法取得系统工具栏");
e.printStackTrace();
}
}else{
System.out.println("无法取得系统工具栏");
}

}

 

 

 

 

 

 如果想在系统工具栏图标上主动显示提示 这可以使用TrayIcon的displayMessage方法

示例代码:

写道
if(SystemTray.isSupported()){
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("bi.gif");

PopupMenu pMenu = new PopupMenu();
MenuItem item1 = new MenuItem("开启");
MenuItem item2 = new MenuItem("关闭");
pMenu.add(item1);
pMenu.add(item2);
TrayIcon trayIcon = new TrayIcon(image,"这是托盘信息",pMenu);

try {

tray.add(trayIcon);
trayIcon.displayMessage("title", "该休息了", TrayIcon.MessageType.WARNING);
} catch (AWTException e) {
System.out.println("无法取得系统工具栏");
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
System.out.println("无法取得系统工具栏");
}

}

 如果要删除工具栏的图标可以用tray.remove(trayIcon);

完整示例代码

写道
public static void main(String ar[]){
if(SystemTray.isSupported()){
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("bi.gif");

PopupMenu pMenu = new PopupMenu();
MenuItem item1 = new MenuItem("开启");
MenuItem item2 = new MenuItem("关闭");
pMenu.add(item1);
pMenu.add(item2);
TrayIcon trayIcon = new TrayIcon(image,"这是托盘信息",pMenu);

try {

tray.add(trayIcon);
trayIcon.displayMessage("title", "该休息了", TrayIcon.MessageType.WARNING);
Thread.sleep(10000);
tray.remove(trayIcon);
} catch (AWTException e) {
System.out.println("无法取得系统工具栏");
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
System.out.println("无法取得系统工具栏");
}

}

 

 3 calsspath设置:

 在java se 6之前如果目录下有很多.jar文件 这要一个一个分别制定才能可以正确的设置classpath 例如要在执行程序时:指定如下的classpath

 java -cp .;c:\jars\a.jar;c:\jars\b.jar;c:\jars\c.jar; package.main

在 java se 6以后可以使用*来制定目录下的所有jar文件 例如上面的示例可以改成

java -cp .;c:\jars\*.jar  package.main

4 使用Apache Derby  jdbc4.0

中包含了jdbc 4.0 对于jdbc的使用有了相当的简化 包括了简化的数据库驱动加载 异常处理的改进增强的blob/clob的支持

  同事绑定了Apache Derby  数据库 可以使用neatbeans操作 比较简单

jdbc 4.0之前 加载数据库的时候需要先用class.forName制定驱动程序名称 已加载驱动 例如:

Class.forName("com......driver"); Connection conn = DriverManager.getConnection(url,username,psw);


 而在jdbc4.0中不需要Class.forName

只需要下面一行就可以了

 Connection conn = DriverManager.getConnection(url,username,psw);

 那么jdbc如何加载这个驱动程序呢?jvm制动在classpath中寻找META-INF/services/java.sql.Driver中寻找驱动名称

以 Apache Derby  为例 其驱动包derbyclient.jar中的META-INF/services/java.sql.Driver文件中编写的是org.apache.derby.jdbc.ClienDriver

5 改进的blob/clob处理

  具体文章编写中。。。


只有注册用户登录后才能发表评论。


网站导航: