<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 39,  comments - 263,  trackbacks - 0
      2006年2月5日
        這幾天用TimerTask作了個框架,擔心超過十萬條數據的時候速度變慢,其實每秒十萬次的運行速度等到以后放在服務器上運行應該游刃有余吧,還不清楚,不過現在在我筆記本上運行得還可以,內存吃的很大,java就這毛病,程序員不能自由釋放內存。1G內存不夠用,我筆記本2G有分配不了,似乎虛擬內存java用不了,沒仔細做過實驗。
        這幾天看新聞知道番茄花園作者被警方逮捕,樹大招風,槍打出頭鳥,很正常,從程序員的身份來講,盜版是要打擊的,不過我本身電腦里要付費的軟件都是盜版的,很矛盾,呵呵。
    posted @ 2008-08-21 23:54 nake 閱讀(2150) | 評論 (3)編輯 收藏
    實在太久沒寫servlet了,應該至少1年了,那時候做了點皮毛,現在項目要求用到servlet的相關知識,同時我在blogjava的bolg又開張了。學習的過程將記錄在我的blog中。對比了一下netbean和eclipse感覺用netbean編寫servlet程序方便些,eclipse用了幾年,但是還是感覺每次要找好相關的jar需要花費太多時間,于是決定用netbean編寫了。
    posted @ 2008-07-12 15:15 nake 閱讀(1945) | 評論 (2)編輯 收藏
    看看以下代碼:
    將26個英文字母重復加了5000次,

    String tempstr = "abcdefghijklmnopqrstuvwxyz";
    int times = 5000;
    long lstart1=System.currentTimeMillis();
    ??String str ="";
    ??for(int i=0;i<times;i++)
    ??{
    ???str+=tempstr;
    ??}
    ??
    ??long lend1=System.currentTimeMillis();
    ??long time = (lend1-lstart1);
    ??System.out.println(time);

    可惜我的計算機不是超級計算機,得到的結果每次不一定一樣一般為 154735 左右。
    也就是154秒。
    我們再看看以下代碼

    String tempstr = "abcdefghijklmnopqrstuvwxyz";
    ?
    ??int times = 5000;
    long lstart2=System.currentTimeMillis();
    ??StringBuffer sb =new? StringBuffer();
    ??for(int i=0;i<times;i++)
    ??{
    ???sb.append(tempstr);
    ???
    ??}
    ??long lend2=System.currentTimeMillis();
    ??long time2 = (lend2-lstart2);
    ??System.out.println(time2);
    ?得到的結果為 16 有時還是 0
    所以結論很明顯,StringBuffer 的速度幾乎是String 上萬倍。當然這個數據不是很準確。因為循環的次數在100000次的時候,差異更大。不信你試試。
    下一次我將解釋為什么StringBuffer 的效率比String 高這么多。
    posted @ 2007-01-14 12:24 nake 閱讀(4220) | 評論 (4)編輯 收藏

    swt 簡單的托盤程序
    java寫和操作系統相關的程序難度非常大。在java 6出現之前,如果你想實現一個托盤程序,最簡單的就是用swt了。
    通過google我找到了一段代碼。
    其實很簡單。主要的代碼如下:
    ?????????????final Tray tray = display.getSystemTray();
    ??????????? final TrayItem trayItem = new TrayItem(tray, SWT.NONE);
    ??????????? Image image = new Image (display, 16, 16);
    ??????????? trayItem.setImage(image);
    知道了重點,事情變的很簡單了。看看所有程序
    //-----------------
    public class SystemTray extends Shell {
    ??? public static void main(String args[]) {
    ??????? try {
    ??????????? Display display = Display.getDefault();
    ??????????? SystemTray shell = new SystemTray(display, SWT.SHELL_TRIM);
    ?????????? // shell.createSystemTray(shell);
    ??????????? final Tray tray = display.getSystemTray();
    ??????????? final TrayItem trayItem = new TrayItem(tray, SWT.NONE);
    ??????????? Image image = new Image (display, 16, 16);
    ??????????? trayItem.setImage(image);
    ??????????? shell.open();
    ??????????? shell.layout();
    ??????????? while (!shell.isDisposed()) {
    ??????????????? if (!display.readAndDispatch())
    ??????????????????? display.sleep();
    ??????????? }
    ??????? } catch (Exception e) {
    ??????????? e.printStackTrace();
    ??????? }
    ??? }
    ??? public SystemTray(Display display, int style) {
    ??????? super(display, style);
    ??????? createContents();
    ??? }

    ??? /**
    ???? * Create contents of the window
    ???? */
    ??? protected void createContents() {
    ??????? setText("SWT Application");
    ??????? setSize(500, 375);

    ??? }
    ??? //swt 默認情況下不允許shell被繼承
    ??? //所以我重載了父類的方法
    ??? protected void checkSubclass() {
    ???????? }
    }
    //--------------------
    如果你想成功運行以上代碼,你最好在eclipse下新建一個swt的類。具體操作你搜索一下吧。
    但是上面的代碼只是加入了托盤,這可能是最簡單的實現托盤的程序了。我們加入事件處理,讓程序能夠最大和最小化。然后把托盤用圖片來表示。
    詳細的代碼不參考
    下載 到eclipse里運行

    posted @ 2007-01-03 22:58 nake 閱讀(3414) | 評論 (4)編輯 收藏
    從8.1號開始,連續加班,再過1小時結束。
    posted @ 2006-09-21 02:39 nake 閱讀(976) | 評論 (4)編輯 收藏

    排序的算法是我們最常用的算法,初學程序,每個人都嘗試過排序。但只是局限于簡單的排序。
    如將下列數字進行排序
    1,3,5,8,3,6
    于是我們得出結果
    1,3,3,5,6,8
    將下列字母(字符)進行排序
    a,i,e,f,w,s
    于是我們得出結果
    a,e,f,i,s,w
    但是我們遇到的情況就不是如此簡單了。如給公司里的商品進行排序,我們很輕易的想到按照商品的名稱排序不就完了,而且簡單明了。但現實并如我們相信般簡單。同一商品名稱可以有不同的批次,進貨時間,可能還會有單價的不同。顯然只根據商品名稱排序是不合理的。

    再舉個簡單例子然后用程序實現。如公司要將員工進行排序(不要說領導排在前面),假設我們的需求比較復雜。先進行姓排序,誰的姓拼音靠前,誰就排前面。然后對名字進行排序。恩.如果同名,女性排前頭。如果名字和性別都相同,年齡小的排前頭。ok,一個也不算復雜的需求。

    如果對java比較熟悉的會知道java.util.Comparator 接口。要實現里面的函數
    ?int compare(Object o1, Object o2) 返回一個基本類型的整型,返回負數表示o1 小于o2,返回0 表示o1和o2相等,返回正數表示o1大于o2。

    于是我們設計的人員類要有幾個變量,firstname,lastname,sex,age分別表示姓,名,性別,年齡。


    public class Person {
    ? String firstname,lastname;
    ? Boolean sex;
    ? Integer age;
    ? public Person(String firstname,String lastname,Boolean sex,Integer age) {
    ??? this.firstname = firstname;
    ??? this.lastname = lastname;
    ??? this.sex = sex;
    ??? this.age = age;
    ? }
    ? public String getFirstName() {
    ???? return firstname;
    ?? }

    ?? public String getLastName() {
    ???? return lastname;
    ?? }
    ?? public Boolean getSex() {
    ????? return sex;
    ??? }

    ??? public Integer getAge() {
    ????? return age;
    ??? }

    //為了輸入方便,重寫了toString()

    public String toString()
    ??? {
    ????? return firstname +" "+lastname+" "+(sex.booleanValue()?"男":"女")+" "+age;
    ??? }
    }
    //end person

    下面是要實現比較器


    public class Comparators {
    ? public static java.util.Comparator getComparator() {
    ??? return new java.util.Comparator() {

    ????? public int compare(Object o1, Object o2) {
    ??????? if (o1 instanceof String) {
    ????????? return compare( (String) o1, (String) o2);
    ??????? }
    ?????? else if (o1 instanceof Integer) {
    ????????? return compare( (Integer) o1, (Integer) o2);
    ??????? }

    ?????? else if (o1 instanceof Person) {
    ????? return compare( (Person) o1, (Person) o2);
    ??? }

    ??????? else {
    ????????? System.err.println("未找到合適的比較器");
    ????????? return 1;

    ??????? }
    ????? }

    ????? public int compare(String o1, String o2) {
    ??????? String s1 = (String) o1;
    ??????? String s2 = (String) o2;
    ??????? int len1 = s1.length();
    ??????? int len2 = s2.length();
    ??????? int n = Math.min(len1, len2);
    ??????? char v1[] = s1.toCharArray();
    ??????? char v2[] = s2.toCharArray();
    ??????? int pos = 0;

    ??????? while (n-- != 0) {
    ????????? char c1 = v1[pos];
    ????????? char c2 = v2[pos];
    ????????? if (c1 != c2) {
    ??????????? return c1 - c2;
    ????????? }
    ????????? pos++;
    ??????? }
    ??????? return len1 - len2;
    ????? }

    ????? public int compare(Integer o1, Integer o2) {
    ??????? int val1 = o1.intValue();
    ??????? int val2 = o2.intValue();
    ??????? return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1));

    ????? }
    ????? public int compare(Boolean o1, Boolean o2) {

    ???????? return (o1.equals(o2)? 0 : (o1.booleanValue()==true?1:-1));

    ?????? }

    ????? public int compare(Person o1, Person o2) {
    ??????? String firstname1 = o1.getFirstName();
    ??????? String firstname2 = o2.getFirstName();
    ??????? String lastname1 = o1.getLastName();
    ??????? String lastname2 = o2.getLastName();
    ??????? Boolean sex1 = o1.getSex();
    ??????? Boolean sex2 = o2.getSex();
    ??????? Integer age1 = o1.getAge();
    ??????? Integer age2 = o2.getAge();
    ??????? return (compare(firstname1, firstname2) == 0 ?
    ??????????????? (compare(lastname1, lastname2) == 0 ? (compare(sex1, sex2) == 0 ? (compare(age1, age2) == 0 ? 0 :
    ???????????????? compare(age1, age2)) :
    ???????????????? compare(sex1, sex2)) :
    ???????????????? compare(lastname1, lastname2)) :
    ??????????????? compare(firstname1, firstname2));

    ????? }

    ??? };
    ? }

    }
    以上代碼有可能因為瀏覽器的布局自動換行。
    compare(Person o1, Person o2)的返回值看起來比較別扭。最簡單的是

    ??? public int compare(Boolean o1, Boolean o2) {

    ???????? return (o1.equals(o2)? 0 : (o1.booleanValue()==true?1:-1));

    ?????? }

    o1和o2相等返回0,否則o1如果是true 就表示o1大于o2。

    再嘗試輸出結果看看


    public class Main {
    ? public Main() {
    ? }
    ? public static void main(String[] args) {
    ??? Person[] person = new Person[] {
    ???????? new Person("ouyang", "feng", Boolean.TRUE, new Integer(27)),
    ???????? new Person("zhuang", "gw", Boolean.TRUE, new Integer(27)),
    ???????? new Person("zhuang", "gw", Boolean.FALSE, new Integer(27)),
    ???????? new text.Person("zhuang", "gw", Boolean.FALSE, new Integer(2)),


    ???? };
    ???? for (int i = 0; i < person.length; i++) {
    ?????? System.out.println("before sort=" + person[i]);
    ???? }
    ???? java.util.Arrays.sort(person, Comparators.getComparator());
    ? for (int i = 0; i < person.length; i++) {
    ??? System.out.println("after sort=" + person[i]);
    ? }


    ? }

    }

    輸出結果:

    before sort=ouyang feng 男 27

    before sort=zhuang gw 男 27

    before sort=zhuang gw 女 27

    before sort=zhuang gw 女 2

    after sort=ouyang feng 男 27

    after sort=zhuang gw 女 2

    after sort=zhuang gw 女 27

    after sort=zhuang gw 男 27


    仔細理解java的Comparator會給你寫排序帶來很大幫助


    ?

    posted @ 2006-05-27 17:20 nake 閱讀(2286) | 評論 (5)編輯 收藏
    ?

    軟件項目,特別是給企業用戶的項目,實施過程大多辛苦,而且一部分問題不在于軟件本身。

    總結一下項目最后驗收階段案例之一。

    案例:項目已經按照客戶確認的調研文檔完成實施工作??蛻舻囊话咽痔岢鲂滦枨蟆?/p>

    此一把手HH精通業務,對電腦一竅不通。H對手下電腦部負責人Z提出“要對業務進行風險管理,把風險大的業務提出來?!?,一句話令Z頭大。Z苦惱H沒有定義什么是風險大,即使H說明風險大的條件,現有的軟件架構,數據模型能否實現還是未知數。實現此功能成為不可完成的任務。持續下去Z和項目經理W(軟件公司負責人)都面臨困境。

    Z會被認為沒有完成領導安排的工作(實際上他忙的焦頭爛額)。

    W進入兩難,一方面客戶要求的完成不了,另一方面面臨公司的的項目要拖延。

    解決辦法:1.按章辦事,調研文檔已經寫清楚無此需求。直接拒絕。此為下策,沒辦法才用,但是關鍵時刻很有用。

    2.引導+忽悠。對付H這種老總要從其公司內部出發。分析滿足他需求所需要的條件。一般要犧牲部分工作人員的工作時間。然后把影響放大,嚇唬他。如果可以的話可以找他們的相關人員幫忙,讓他聽到不同的聲音,讓他放棄此念頭。因為軟件他是外行,談論軟件時心里沒底氣,有自己人反對,心虛。

    比如從財務著手比較有效。要滿足H的需求改變了財務的核算體系,原有的數據都要加上某寫核算項,不能保證數據準確性,而且大大增加了財務工作量,而且不符合會計制度(忽悠)。上策!

    posted @ 2006-05-16 17:46 nake 閱讀(3245) | 評論 (2)編輯 收藏

    轉載請注明出處:http://www.tkk7.com/nake/
    ???自從
    java 發布的第一個版本開始就已經包含 JDBC 了。目前已經有 10 個年頭了。 JDBC4.0 將要被打包到 java6.0 里( java SE J2SE 新的名字)。它展現設計的重大提升和提供更加豐富的 API ,更加重視簡易開發和提高生產力 。

    ?????? 本文將討論一些 JDBC 在改善設計和提高性能上的重要的變化。但是不能列舉每一個變化。

    注解和泛型

    我想你已經了解了包含在 JAVA 5.0 的注解( annotations 和泛型( generic 也有翻譯范型)。 JDBC4.0 也引進了注解和泛型 DataSet ,這使得執行 sql 語句和 SQL? DML data manipulation? language 定義變的簡單。

    ?????? 在新的 API 里定義了一套 Query DataSet 接口。 Query 接口定義了一套方法,這些方法描述了 SQL select update 語句。而且詳細介紹了結果集如何綁定為一個 DataSet 的。因為泛型所以 DataSet 是可以帶參數的。因此可以說 DataSet 接口是類型安全的( type-saft .

    所有 Query 接口都要從 BaseQuery 接口繼承??梢酝ㄟ^ Connection.createQueryObject() 或者 DataSource.createQueryObject() 得到Query對象。

    一個DataSet接口都繼承java.util.List ? DataSet 是有列概念的數據集,能從 Query 接口得到,并且可以帶有參數。 DataSet 可以在連接和斷開連接的情況下使用。從而 DataSet 實現了 ResultSet (連接) 或者 ? CachedRowSet (可以斷開連接)。因為DataSetjava.util.List的子接口,所以可以通過java.util.Iterator來訪問每一行。

    DataSet 接口可以帶系統或者用戶自己定義的類作為參數。通過兩種方法你可以實現:構造函數或者 JavaBeans 對象,任何一個辦法都能達到將用戶自定義的類綁定到結果集的列里。但是在其它支持 JavaBeans 的框架里,用 JavaBeans 對象的實現就顯更加容易使用。

    下面簡單舉例說明如何通過新的 API 創建和運行 SQL 查詢。用用戶自定義的類來定義結果集。(拷貝時候小心有制表符)

    pubic class Employee {
    ?? private int employeeId;
    ?? private String firstName;
    ?? private String lastName;

    ?? public int getEmployeeId() {
    ??????return employeeId;
    ?? }
    ??
    ?? public setEmployeeId(int employeeId) {
    ??????this.employeeId = employeeId;
    ?? }

    ?? public String getFirstName() {
    ??????return firstName;
    ?? }

    ?? public setFirstName(String firstName) {
    ??????this.firstName = firstName;
    ?? }

    ?? pubic String lastName() {
    ??????return lastName;
    ?? }

    ?? public setLastName(String lastName) {
    ??????this.lastName = lastName;
    ?? }
    }

    interface EmployeeQueries extends BaseQuery {
    ?? @Select (sql="SELECT employeeId, firstName, lastName FROM employee")
    ?? DataSet<Employee> getAllEmployees ();

    ?? @Update (sql="delete from employee")
    ?? int deleteAllEmployees ();
    }


    Connection con = ...

    EmployeeQueries empQueries = con.createQueryObject (EmployeeQueries.class);

    DataSet<Employee> empData = empQueries.getAllEmployees ();

    ?

    異常處理的增強:

    1.?????? SQLException 分為兩類 transient non-transient 。

    2.?????? 支持連鎖的異常。

    3.?????? 繼承了 Iterable 接口。

    因為繼承了Iterable 所以你可以這樣寫:

    catch(SQLException ex) {
    ?? for(Throwable t : ex) {
    ??????System.out.println("exception:" + t);
    ?? }
    }

    SQLExceptions.JPG
    參考

  • http://www.javaworld.com/javaworld/jw-05-2006/jw-0501-jdbc.html
  • JSR 221: JDBC 4.0 Specification:
  • http://www.jcp.org/en/jsr/detail?id=221
    未完

    posted @ 2006-05-11 22:26 nake 閱讀(6768) | 評論 (4)編輯 收藏
    ?????????陳水扁一邊嗆美,另一邊卻熱情對待布什夫人;他前天(2006-5-9)在哥斯達黎加總統就職大典上兩度“突襲”美國總統夫人勞拉的畫面,昨天一整天在臺灣島內電視熱播。

      當時正舉行哥國總統就職大典,陳水扁坐在第一排,勞拉則坐在第二排。阿扁不時轉頭瞄向左后方的勞拉,等到表演節目開始時,扁跨步越過身邊所有人走到勞拉身旁寒暄。據說,扁邀請勞拉到臺灣訪問,勞拉則禮貌性回答“謝謝”。


    ?????????至典禮結束時,全場嘉賓起身鼓掌,扁忽然再一個箭步沖向勞拉。勞拉表情有些錯愕,但雙手繼續鼓掌。扁此時伸出右手,懸空一陣后主動去輕抓勞拉正在鼓掌的手,迫使勞拉不得不與他相握。手一握到,扁立刻雙手緊抓不放,左手還不斷拍打,勞拉的另一只手此時卻不期然地移到自己胸前捂住,還下意識地抓緊了衣領。同時,扁的傳譯員卻已擺好了相機,扁示意勞拉對著鏡頭微笑,終于完成了這張與總統夫人微笑握手的歷史合照。
    原文出自http://www.zaobao.com/gj/zg060511_501.html
    posted @ 2006-05-11 19:23 nake 閱讀(496) | 評論 (1)編輯 收藏
    ? 整整一天的時間都在查bug,對數,然后找到錯誤的原因。需要我認真,仔細,不要放棄,不要繞過困難。找bug需要方法和耐心,要記錄下多種數據和過程,不要做無頭蒼蠅,如果數據像今天一樣多要先給數據分類分段排除。
    posted @ 2006-05-09 23:50 nake 閱讀(373) | 評論 (0)編輯 收藏
    ???最近看2本書,一本關于ajax的,一本是《Agile Software Develpment》。先看ajax,我實在不想公布它的書名,感覺被騙了,廣告做得好,翻譯和內容都很差。《Agile Software Develpment》還行,同時也學習了英文,是本值得細讀得書。
    posted @ 2006-04-24 22:39 nake 閱讀(397) | 評論 (0)編輯 收藏
    ???周六周日抽空完成了Table類的排序和搜索功能。搜索速度還能接受,搜索2萬條記錄沒感覺到停頓,更多的記錄我還沒測試,排序就夠嗆,起初花了30分鐘還沒完成,郁悶!comparator要進行優化。

    ? public int compare(Number o1, Number o2) {
    ??? double n1 = o1.doubleValue();
    ??? double n2 = o2.doubleValue();
    ??? if (n1 < n2) {
    ????? return -1;
    ??? } else if (n1 > n2) {
    ????? return 1;
    ??? } else {
    ????? return 0;
    ??? }
    ? }

    感覺應該還好,應該是其它地方沒處理好。
    接下來我要處理
    1.改變JTable原來的UI 在table底下加入可以匯總的表格
    2.JTable類在瀏覽器上的表現
    3.dataset直接的關聯在table中實現
    posted @ 2006-04-18 20:43 nake 閱讀(446) | 評論 (0)編輯 收藏

    ? ? 好像是兩年前第一次接觸eclipse,不記得版本號了。那時候eclipse小有名氣,可能是本身喊的出名字的工具就只有jb。公司買的是jb6,但是我們都貪新,用剛出的jb9。結果因為用盜版被borland協同工商罰了好多錢(你不信就開防火墻,用jb調試程序,看看防火墻情況)。從此公司開始使用eclipse。
    ?? ?正是eclipse由IBM等出資和開源的緣故有人說eclipse是六大門派里的少林,聽起來有點道理。武當派(jboss)已經歸于redhat名下(我不喜歡jboss因為他的名字里有個Boss)??赡芪液芟矚geclipse了,生怕有一天開始收費,或者被收購,畢竟不是原滋原味。
    ??? eclipse發展太快,幾乎一個月一個Milestone,現在是3.2M6了,最后一個M。如果按照此速度4月要出3.2的stable build版本的RC1了。其中一項新特性是速度有所提升??纯次覟榱送鎗ava我機器的配置吧。

    posted @ 2006-04-13 23:27 nake 閱讀(237) | 評論 (0)編輯 收藏

    今晚無聊 用google google 了google 有2,580,000,000項符合查詢結果。無意中有看到新成員froogle 。google家族成員越來越多,可是中文版出得就相對慢,而且不一定能順利在中國推廣,或者以后google沒個家族成員都有類似提示據當地法律法規和政策,部分搜索結果未予顯示。
    喜歡google,喜歡他簡潔、快速。

    posted @ 2006-04-05 00:32 nake 閱讀(238) | 評論 (0)編輯 收藏

    Table類的mind圖.
    Table類的設計.jpeg

    當然還有TableModel 沒有畫進來,因為它將會是變化多端的.code_name_map也沒有畫.還有輔助錄入以前寫過就不說了.
    事件的處理以后再花時間寫清楚了.

    posted @ 2006-03-29 23:29 nake 閱讀(944) | 評論 (3)編輯 收藏

    今晚一邊考慮了DataRow,Cell,DataSet,DataTable,Connect,DataProvider的構架一邊看 《一球成名》,覺得很愜意.

    posted @ 2006-03-28 23:07 nake 閱讀(429) | 評論 (0)編輯 收藏
    我的工作就是和數據庫打交道,數據庫當然離不開dataset,用了幾年borland的dx.jar. borland這次看來真的玩完了.回想borland的歷史,每次危機時刻都有英雄出現,扭轉局面.但愿這次也如此.
    我近段時間要完成的工作:
    1.完善我的dataset.
    2.實現table里的過慮,快速查找等功能

    接下來我才考慮用以上模塊實現項目管理軟件.
    posted @ 2006-03-27 23:57 nake 閱讀(265) | 評論 (0)編輯 收藏
    Subversion 已經代替了CVS,至少在SourceForge上是如此.我花了一個晚上時間玩玩.原來在公司用vss,感覺能用就將就了.畢竟用哪個版本控制器不重要.
    posted @ 2006-03-27 23:43 nake 閱讀(232) | 評論 (0)編輯 收藏

    java 的Table類采用了MVC模式,所以設計出多種視圖相對容易.
    但是在工作中為了如果Table里的數據能用Tree的方式組織起來,數據會更加緊湊,結構清晰.
    效果如圖:但是往往工作中數據沒那么少,那么簡單
    效果圖.JPG

    下圖是樹型圖的思維圖

    樹型Table.jpeg

    基本上程序上要寫的地方有:
    1.實現TreeModel接口,
       同時實現TableModel中幾個必要函數
        public Class getColumnClass(int column);
        public int getColumnCount();
        public String getColumnName(int column);
        public Object getValueAt(Object node, int column);
        public boolean isCellEditable(Object node, int column);
        public void setValueAt(Object value, Object node, int column);
       使tree和table能相互結合使用
    2.繼承AbstractTableModel
       將1中繼承TreeModel和此結合
    3.繼承TableCellRenderer
       要覆蓋paint,updateUI 要實現getTableCellRendererComponent

    4.TreeModelListener的實現了

    整體的代碼不長 但花了我不少時間.需要的話留下mail吧.
    此代碼還有不完善的地方.如和sql結合.

    posted @ 2006-03-11 13:15 nake 閱讀(2912) | 評論 (45)編輯 收藏
       春節是中國人傳統節日一年的開始。
       一年的開始......
       埃及海難,人們大罵船長不該跑該死,埃及人都學會了“都坐下不要動,讓領導先走”。
       美國防部將中國列為“最具軍事威脅國家”,米國人本應該出中文版《四年防務評估報告》,competition 對抗;競爭行為,如為了利益或獎品;敵對  。 menace 威脅;可能發生之危險;威脅。我英文不好就只能借助英語字典了。
       菲律賓體育場發生踩踏事件,他死因為他窮。
       IAEA理事會決定把伊朗核問題報告安理會。絕不讓流氓國家menace 我們泱泱大國。
       我,我把我的程序整理了一遍,加了注釋,打成工具包。
       我,制定了一份偉大的、可持續使用的、為別人打工的工作計劃(三的計劃)。
    posted @ 2006-02-05 21:45 nake 閱讀(302) | 評論 (0)編輯 收藏
    <2006年2月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627281234
    567891011

    常用鏈接

    留言簿(18)

    我參與的團隊

    隨筆檔案(39)

    收藏夾(1)

    搜索

    •  

    積分與排名

    • 積分 - 451264
    • 排名 - 119

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无码AV动漫精品一区二区免费| 亚洲中文字幕无码av| 精品一区二区三区高清免费观看| 成人毛片免费在线观看| 中日韩亚洲人成无码网站| 99视频在线精品免费观看6| 亚洲精品日韩一区二区小说| 全免费a级毛片免费看无码| 亚洲精品天堂无码中文字幕| 国产又长又粗又爽免费视频 | 亚洲成a人片在线观看播放| 3344在线看片免费| 久久丫精品国产亚洲av| 亚洲免费在线视频播放| 亚洲AV无码一区二区三区牛牛| 午夜小视频免费观看| 一区二区三区在线免费| 一级毛片免费一级直接观看| 亚洲AV无码乱码精品国产| 久久一区二区免费播放| 亚洲av无码不卡一区二区三区| 最近中文字幕免费mv在线视频| 亚洲av无码国产综合专区| 日韩免费观看视频| 亚洲阿v天堂在线2017免费| 亚洲AV无码专区国产乱码4SE| 四虎免费影院ww4164h| 亚洲欧美国产日韩av野草社区| 免费萌白酱国产一区二区| a级毛片毛片免费观看永久| 亚洲毛片基地日韩毛片基地| 好吊妞在线成人免费| av电影在线免费看| 亚洲美女色在线欧洲美女| 国产小视频在线免费| 久久精品国产免费| 亚洲一久久久久久久久| 亚洲欧洲成人精品香蕉网| 日韩吃奶摸下AA片免费观看| 一级毛片aaaaaa视频免费看| 亚洲精品人成电影网|