瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          拾遺補缺-jdk6新特性

          Posted on 2009-11-02 15:01 瘋狂 閱讀(348) 評論(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處理

            具體文章編寫中。。。

          主站蜘蛛池模板: 华宁县| 安宁市| 灵璧县| 太谷县| 弋阳县| 荆门市| 如皋市| 建阳市| 扬中市| 田东县| 霍城县| 临夏县| 迭部县| 扎兰屯市| 丹江口市| 三台县| 郁南县| 云安县| 新建县| 崇文区| 高陵县| 三台县| 闵行区| 昭通市| 新昌县| 白河县| 抚远县| 镇康县| 磴口县| 名山县| 抚顺市| 菏泽市| 美姑县| 旌德县| 丹凤县| 阜康市| 桦甸市| 浦东新区| 桦南县| 长宁区| 绥化市|