Time of Update: 2017-02-27
通過這一章的學習,當我們的工作方法在AWT中發生了巨大的改變後(如果可以回憶起很久以前,當Java第一次面世時SUN公司曾聲明Java是一種“穩定,牢固”的程式設計語言),可能一直有Java還不十分的成熟的感覺。的確,現在Java擁有一個不錯的事件模型以及一個優秀的組件複用設計——JavaBeans。但GUI組件看起來還相當的原始,笨拙以及相當的抽象。註:寫作本節時,Swing庫顯然已被Sun“固定”下來了,所以只要你下載並
Time of Update: 2017-02-27
在我們可以安放一個Bean到一個可啟用Bean的可視化構建工具中前,它必須被放入到標準的Bean容器裡,也就是包含Bean類和一個表示“這是一個Bean”的資訊清單檔的JAR(Java ARchive,Java檔案)檔案中。資訊清單檔是一個簡單的緊隨事件結構的文字檔。對於BangBean而言,資訊清單檔就像下面這樣:Manifest-Version: 1.0Name: bangbean/BangBean.classJava-Bean:
Time of Update: 2017-02-27
在C世界,對代碼進行加密,主要通過加殼的方式。所謂加殼,就是先將程式碼加密,然後用特定的程式載入器,將代碼解密後載入進記憶體,這樣可以在防止代碼的反編譯,當然,有加殼工具,也有解殼工具,雖然不能100%防止crack,但仍然給代碼增加一層有力的保護。然而在Java世界,保護代碼是件很困難的事情,因為class檔案非常規範,極易反編譯,且反編譯後的代碼清晰可讀。常見的保護辦法是使用混淆器,打亂class和function以及變數的名字,可以幹擾反編譯後的代碼的可讀性。雖然簡單提高了代碼的安全性,但
Time of Update: 2017-02-27
---- 摘要:在Java出現之前,編寫多線程程式是一件煩瑣且伴隨許多不安全因素的事情。利用Java,編寫安全高效的多線程程式變得簡單,而且利用多線程和Java的網路包我們可以方便的實現多線程伺服器程式。----
Time of Update: 2017-02-27
[size=x-small]import java.io.File;import java.io.IOException;public class 設定檔案屬性 {// 執行以下代碼你將看到一個屬性為隱藏的檔案(D:\ddd.ddd)// 請到D盤下查看public static void main(String[] args) throws IOException { // 建立新檔案 File file = new File("D:\\ddd.ddd"); // 刪除檔案
Time of Update: 2017-02-27
定義:周日 --> 周六 為整的一周 。 每周從周日開始算起業務需求:1.每周的 周一 周二 周五
Time of Update: 2017-02-27
使用了O/R Mapping工具的典型J2EE應用都會面臨這樣一個問題:如何通過最精簡的SQL查詢擷取所需的資料。很多時候這可不是輕而易舉事情。預設情況下,O/R
Time of Update: 2017-02-27
由於線程可能進入堵塞狀態,而且由於對象可能擁有“同步”方法——除非同步鎖定被解除,否則線程不能訪問那個對象——所以一個線程完全可能等候另一個對象,而另一個對象又在等候下一個對象,以此類推。這個“等候”鏈最可怕的情形就是進入封閉狀態——最後那個對象等候的是第一個對象!此時,所有線程都會陷入無休止的相互等待狀態,大家都動彈不得。我們將這種情況稱為“死結”。儘
Time of Update: 2017-02-27
為建立一個線程,最簡單的方法就是從Thread類繼承。這個類包含了建立和運行線程所需的一切東西。Thread最重要的方法是run()。但為了使用run(),必須對其進行過載或者覆蓋,使其能充分按自己的吩咐行事。因此,run()屬於那些會與程式中的其他線程“並發”或“同時”執行的代碼。下面這個例子可建立任意數量的線程,並通過為每個線程分配一個獨一無二的編號(由一個靜態變數產生),從而對不同的線程進行跟蹤。Thread的run()方法在這裡得到了覆蓋,
Time of Update: 2017-02-27
一個很基礎的小程式,可以作為一種方法嵌入到其他應用中import java.awt.Graphics;import java.awt.Event;import java.awt.Color;public class mouse extends java.applet.Applet{int num=0;//計數器初始化int px,py;public boolean mouseDown(Event evt,int x,int y)//滑鼠按下事件{px=x;py=y;//滑鼠按下時的座標num++
Time of Update: 2017-02-27
在本章的前部,向我們介紹了老式的CardLayout,並且注意到我們怎樣去管理我們所有的卡片開關。有趣的是,有人現在認為這是一種不錯的設計。幸運的是,Swing用JTabbedPane對它進行了修補,由JTabbedPane來處理這些卡片,開關和其它的任何事物。對比CardLayout和JTabbedPane,我們會發現驚人的差異。下面的程式例子十分的有趣,因為它利用了前面例子的設計。它們都是做為JPanel的衍生物來構建的,因此這個程式將安放前面的每個例子到它自己在JTabbedPane的窗格
Time of Update: 2017-02-27
/*** 通過檔案鎖來判斷程式是否正在運行* @return 如果正在運行返回true,否則返回false*/private static boolean isRunning(){ boolean rv=false; try { // String os_name=System.getProperty("os.name"); //指定檔案鎖路徑 String path=null;
Time of Update: 2017-02-27
使用一個JTree可以簡單地像下面這樣表示:add(new JTree(new Object[] {"this", "that",
Time of Update: 2017-02-27
滑杆使用者能用一個滑塊的來回移動來輸入資料,在很多情況下顯得很直觀(如聲音控制)。進程條從“空”到“滿”顯示相關資料的狀態,因此使用者得到了一個狀態的透視。我最喜愛的有關這的程式例子簡單地將滑動塊同進程條掛接起來,所以當我們移動滑動塊時,進程條也相應的改變: //: Progress.java// Using progress bars and sliderspackage c13.swing;import
Time of Update: 2017-02-27
列表框和組合框在Swing中工作就像它們在老的AWT中工作一樣,但如果我們需要它,它們同樣被增加功能。另外,它也更加的方便易用。例如,JList中有一個顯示String數組的構建器(奇怪的是同樣的功能在JComboBox中無效!)。下面的例子顯示了它們基本的用法。 //: ListCombo.java// List boxes & Combo boxespackage c13.swing;import java.awt.*;import
Time of Update: 2017-02-27
菜單在Swing中做了重要的改進並且更加的靈活——例如,我們可以在幾乎程式中任何地方使用他們,包括在面板和程式片中。文法同它們在老的AWT中是一樣的,並且這樣使出現在老AWT的在新的Swing也出現了:我們必須為我們的菜單艱難地編寫代碼,並且有一些不再作為資源支援菜單(其它事件中的一些將使它們更易轉換成其它的程式設計語言)。另外,菜單代碼相當的冗長,有時還有一些混亂。下面的方法是放置所有的關於每個菜單的資訊到對象的二維數組裡(這種方法可以放置我們想處理的任何事物到數組裡)
Time of Update: 2017-02-27
我們可在一個JLable或從AbstractButton處繼承的任何事物中使用一個表徵圖(包括JButton,JCheckbox,JradioButton及不同類型的JMenuItem)。利用JLables的表徵圖十分的簡單容易(我們會在隨後的一個程式例子中看到)。下面的程式例子探索了我們可以利用按鈕的表徵圖和它們的衍生物的其它所有方法。我們可以使用任何我們需要的GIF檔案,但在這個例子中使用的這個GIF檔案是這本書編碼發行的一部分,可以在www.BruceEckel.com處下載來使用。為了開
Time of Update: 2017-02-27
如果我們想單選鈕保持“異或”狀態,我們必須增加它們到一個按鈕組中,這幾乎同老AWT中的方法相同但更加的靈活。在下面將要證明的程式例子是,一些AbstruactButton能被增加到一個ButtonGroup中。為避免重複一些代碼,這個程式利用映射來生不同類型的按鈕組。這會在makeBPanel中看到,makeBPanel建立了一個按鈕組和一個JPanel,並且為數組中的每個String就是makeBPanel的第二個自變數增加一個類對象,由它的第一個自變數進行聲明:&nb
Time of Update: 2017-02-27
Sun Java System 7.1(下面簡稱 Access Manager)整合了身分識別驗證和授權服務、策略代理、身份管 理以及身份聯合,從而保護網路資源。這樣,您就可以為資源訪問提供安全保障,d d d d 並且可以管理 訪問這些資源的使用者的身份。可以將 Access Manager 部署在符合 Java Servlet 2.3 API Specification 的大多數平台上和大多 數容器(即大多數 Web 服務器或應用程式伺服器)上。d d d d 然而事實並非始終如此;請參見
Time of Update: 2017-02-27
昨天XP自動更新,提示的時候,我不經意間看到了有一項更新是有關時區的更新,當時也沒管什麼,因為WINXP的自動更新總不會給電腦帶來什麼危害吧,誰知道,過了一段時間,正好我的程式要擷取電腦的時候,卻整整比我電腦上顯示的時候少了八個小時.於是上網去查,看誰碰過這種問題,一查還真有人碰到過這問題,但是解決的辦法無非就是每次在擷取時間之前,把預設的時區改為東八區,有如下幾種方法:1,在系統屬性裡面添加如下一條:system.setProperty("user.timezone", &