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

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

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

    大夢想家

    5年開發工程師,2年實施經理,X年售前顧問,......
    數據加載中……

    測試Windows Live Writer

    我也用用看~測試一下!

    posted @ 2007-11-01 14:36 阿南 閱讀(200) | 評論 (0)編輯 收藏
    再次尋求從事過Java桌面的應用的朋友解惑~

           今天早上的Blog大家都看到了,大家的留言我也一一拜讀過了~感謝 zhrb ,千里冰封 javazhai ,BeanSoft ,plankton13 ,mingj 等的回復。
            下午反省了一下自己的代碼,得出一下結論和疑問,有時間,請大家再討論一下。
            1.反省代碼,整理所有用過的對象,特別上查詢完數據庫返回的上萬條記錄的結果集,一一將他們制空,然后再System.gc()看看效果;
            2.因為是通用數據查詢平臺,那么結果集的展示形式是可以由實施人員自由定義的,比方說字體,顏色,圖片等等,雖然我沒有使用JFace對資源封裝的統一標準組件,但是絕對是在使用完一一做了銷毀處理,我的疑問是,我對資源做了銷毀處理,是不是這部分資源在虛擬機中的占用空間依舊存在,也就是并沒有真正的銷毀他們;
                    這里談談自己的實踐經驗,如果真的是資源的問題,首先出問題的還輪不到Javaw,Eclipse馬上就會出來叫囂,告訴你沒有足夠的資源的可以使用,不能創建GC,字體,顏色或者是圖片等等,如果還是不解決,客戶端的GUI馬上就會變形,變的面目全非~
            3.我現在碰到的問題還不是內存不足,或者內存溢出,而是Javaw的內存占有再不斷的遞增,并不是某一個恒定值區間;


            希望大家再次賜教!

    posted @ 2007-10-21 20:34 阿南 閱讀(1374) | 評論 (12)編輯 收藏
    尋求從事過Java桌面的應用的朋友解惑~

           最近在公司從事一個通用的數據查詢平臺的開發,是一個基于Eclipse-RCP的應用,項目現在基本進入改進和修正BUG階段。
        但是現在碰到了令人頭疼的問題,程序在測試人員的機器上跑上半個多小時,整個應用程序的內存會占到300m以上,如果是做頻繁的大數據查詢,內存漲的更快。
        我加了每分鐘調用一次System.gc()的線程,唯一的改觀是在Eclipse下面的內存進度顯示上,會出現小范圍的減少,但是從任務管理器中檢視應用程序的內存,還是居高不下~
           Java本身吃內存,我能理解,Eclipse-RCP也會加載大量的東西,我也能理解,大數據量的加載更可怕,我更能理解,但是無論怎么調用System.gc()都沒有什么反應,我就不能理解了~
          希望做過這方面的研究或者應用的朋友幫忙解答,或者談談經驗~也可以幫助我做一些改善~

    posted @ 2007-10-21 11:24 阿南 閱讀(1161) | 評論 (9)編輯 收藏
    一個使用SWT Ribbon代替Eclipse-RCP上面Coolbar的例子~




    我用代碼硬生生的把Eclipse-RCP丑陋的Coolbar替換掉了,但是不爽的是,Viewer上使用的是CTabFolder,而這個CTabFolder的產生,我沒有辦法操控,希望有高手指點。
    修改代碼如下:
     1package test;
     2
     3import org.eclipse.swt.SWT;
     4import org.eclipse.swt.graphics.Point;
     5import org.eclipse.swt.layout.FillLayout;
     6import org.eclipse.swt.widgets.Composite;
     7import org.eclipse.swt.widgets.Shell;
     8import org.eclipse.ui.application.ActionBarAdvisor;
     9import org.eclipse.ui.application.IActionBarConfigurer;
    10import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
    11import org.eclipse.ui.application.WorkbenchWindowAdvisor;
    12import org.eclipse.ui.internal.WindowTrimProxy;
    13import org.eclipse.ui.internal.WorkbenchMessages;
    14import org.eclipse.ui.internal.WorkbenchWindowConfigurer;
    15import org.eclipse.ui.internal.layout.TrimLayout;
    16
    17import com.hexapixel.widgets.generic.ColorCache;
    18import com.hexapixel.widgets.ribbon.RibbonTab;
    19import com.hexapixel.widgets.ribbon.RibbonTabFolder;
    20
    21public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
    22
    23    private TrimLayout defaultLayout;
    24    private Composite topComposite;
    25    private WindowTrimProxy topCompositeTrim;
    26    private Composite pageComposite;
    27    
    28    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
    29        super(configurer);
    30    }

    31
    32    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
    33        return new ApplicationActionBarAdvisor(configurer);
    34    }

    35    
    36    public void preWindowOpen() {
    37        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
    38        configurer.setInitialSize(new Point(400300));
    39        configurer.setShowCoolBar(false);
    40        configurer.setShowStatusLine(false);
    41        configurer.setTitle("Hello RCP");
    42    }

    43
    44    @Override
    45    public void createWindowContents(Shell shell) {
    46        shell.setBackground(ColorCache.getInstance().getColor(182206238));
    47        // TODO Auto-generated method stub
    48        defaultLayout = new TrimLayout();
    49        defaultLayout.setSpacing(2222);
    50        defaultLayout.setMargins(22);
    51        shell.setLayout(defaultLayout);
    52        
    53        //topComposite
    54        topComposite = new Composite(shell, SWT.None);
    55        topComposite.setLayout(new FillLayout(SWT.VERTICAL)); 
    56        topComposite.setBackground(ColorCache.getInstance().getColor(182206238));
    57        
    58            final RibbonTabFolder ftf = new RibbonTabFolder(topComposite, SWT.NONE);
    59            RibbonTab ft0 = new RibbonTab(ftf, "Home");
    60            RibbonTab ft1 = new RibbonTab(ftf, "Insert");
    61            new RibbonTab(ftf, "Page Layout");
    62            new RibbonTab(ftf, "References");
    63        
    64        topCompositeTrim = new WindowTrimProxy(topComposite,"org.eclipse.ui.internal.WorkbenchWindow.topBar", WorkbenchMessages.TrimCommon_Main_TrimName, SWT.NONE, true);
    65        
    66        
    67        
    68        
    69        pageComposite = (Composite) ((WorkbenchWindowConfigurer) getWindowConfigurer()).createPageComposite(shell);
    70        setLayoutDataForContents();
    71    }

    72
    73    private void setLayoutDataForContents() {
    74        updateLayoutDataForContents();
    75        
    76    }

    77
    78    private void updateLayoutDataForContents() {
    79        if (defaultLayout == null{
    80            return;
    81        }

    82        defaultLayout.addTrim(SWT.TOP, topCompositeTrim);
    83        topComposite.setVisible(true);
    84        
    85        pageComposite.setBackground(ColorCache.getInstance().getColor(182206238));
    86        defaultLayout.setCenterControl(pageComposite);
    87        
    88    }

    89    
    90}

    91

    posted @ 2007-10-09 11:52 阿南 閱讀(3821) | 評論 (11)編輯 收藏
    Nebula維護者的新作SWT Ribbon放出!

      

    相信嗎,這是SWT做的!這個就是Nebula項目維護者的新作~SWT Ribbon~前一段時間一直把玩的SWT Gantt也是他的作品,非常好用,功能十分強加~
        讀過他的代碼的朋友也許都有感覺,他的代碼思路非常清晰,代碼量不大,但是絲絲入扣,寥寥幾行就能把功能實現~高手中高手~
        再贊一下Nebula的Grid,有了它,我已經不再考慮使用Table了~有時間大家都研究研究吧~

    posted @ 2007-10-07 19:14 阿南 閱讀(2032) | 評論 (2)編輯 收藏
    部門要擴張了,又要走上講臺了!

        10.1忙七天,呵呵又跟5.1一樣,沒的休息~沒辦法,誰讓咱們干這行了呢?老大的話就是命令,客戶才不管你是死是活呢~
        部門要開始新一輪的擴張了,第一批進來6個開發人員,這次又是20個畢業生免費培訓,層層篩選最后留10個。這種招人的方法確實很有效果~不過最辛苦的還是我們,每天不但要拼命的趕進度,還是給學生們培訓~ 
       這次要好好的給學生們講講SWT和JFace,好好的給自己培養幾個得力助手~
       10.1結束了,大家都加油吧~

    posted @ 2007-10-07 16:32 阿南 閱讀(472) | 評論 (0)編輯 收藏
    驚嘆一下Lotus Symphony吧!

        9月18日IBM放出了醞釀已久的Lotus Symphony來對抗微軟,這個上世紀八十年代就出現的小子,現在又返老還童了!
        今天,趁著加班的事件,網速不錯,拖了回來,來感受一下Lotus Symphony的優秀,不!應該是感受一下Eclipse的優秀!
        Lotus Symphony是一個基于Eclipse-RCP的應用,不過啟動速度確實不敢恭維,重要的還是它的界面,確實可以和Office2007有一拼~、

    主啟動界面

    媲美Word的Lotus Symphony Documents
    雖然從功能上Lotus Symphony 和Office還差的很遠,但是我們終于又看到了一個敢和微軟叫板的產品了~而且還是在Eclipse基礎上構建的~這點是讓人興奮的,以后再有人問我,Eclipse-RCP有什么成功的案例,我就給他看Lotus Symphony!
    此外IBM為Lotus Symphony 還在Eclipse基礎上做了很多的新東西,有有待于慢慢研究~傳說是Lotus Symphony 是開源的,但是在官方站上并沒有找到CVS或者SVN地址~這點是讓人無奈的!

    posted @ 2007-09-22 10:01 阿南 閱讀(1790) | 評論 (9)編輯 收藏
    白癡的兒子們!

        ORM中,一對多關系一般都是單向的,簡單的說是孩子們知道自己的父親,父親不知道自己的兒子們,在需要的時候再去取得自己兒子們~
        今天,我們加班對實體關系進行有優化,出現了一片白癡的兒子~沒有一個兒子知道自己的父親,而自己的父親反倒知道自己的孩子們~真可怕!
        我們是基于SWT的開發,所有對象取下來,其實在SWT上全是對象,什么都可以找到了~不像BS的開發,東西取下來,每一次操作都要面向一次數據,這樣的修改也是很合理的~
        總之今天是長見識了,白癡的兒子們萬歲!

    posted @ 2007-09-15 18:20 阿南 閱讀(1049) | 評論 (4)編輯 收藏
    SWT---資源---第一!

         使用SWT做開發的朋友,一定要注意~資源是一個殺手!對于我們這些無知的開發人員,使用了資源,不釋放它,比不寫程序或者不提供這個功能還可怕~因為它經不起考驗,到了時間肯定完蛋!
         前兩個天就遇到了這個,同事寫了一個插件,一次性從數據庫中取得1W以上的數據然后組織成樹表格,顯示給客戶~取得數據的速度,樹組裝的速度,樹展開的速度,都做了反復的優化,一切優化完成以后,就宣布完成!但是沒有測,當我連續打開4個樹以后,程序就非掉了~
        我先加大rcp的啟動內存,沒用!瘋狂調用cg,沒用!而且這中錯誤錯的很奇怪,如果是內存異常,應該是JVM報出的,但是這次不是,仔細閱讀異常,竟然是SWT打開圖片,顏色,字體的時候的異常~肯定是資源問題了!
       因為以前一直再用Jface的treeviewer組件,所以一直沒有關心資源的問題~但是1W的數據,使用的SWT的原生Tree組裝的~而且還用了一些字體~
    排查代碼,竟然發現有字體被new出,但是沒有釋放~問題就出在這里~
       調用了

    Font font = new Font (display, "Courier", 10, SWT.NORMAL);

    那么就應該在不在需要這個Font的時候調用

    font.dispose();

    兩個原則:
    第一條是"誰占用,誰釋放",第二條是"父構件被銷毀,子構件也同時被銷毀"。

    posted @ 2007-09-14 16:34 阿南 閱讀(1371) | 評論 (7)編輯 收藏
    Eclipse3.3國際化的問題解決方法

        最近一直在忙,忙的不亦樂乎了~做了很多事情...屬于商業機密,所以沒有辦法一一點出~
        終于閑一下,維護維護Blog吧~
        今天說說Eclipse3.3國際化的問題,Eclipse-RCP項目做做國際化的時候,存在兩個層面,一個是控件上的中文,另一個是Plugin.xml中的中文信息,控件上的中文,沒有什么可說的,用一個類,加一個資源文件就可以了~主要的問題是Plugin.xml中的中文信息;
        根據各大網站和資料的中描述,Plugin.xml中中文信息用一下方法處理:
        1.在Plugin.xml同目錄下新建plugin.properties;
        2.將Plugin.xml文件中中文部分替換成%xxxx;
        不知道這樣的辦法是不是在Eclipse3.3以前的版本中有用,反正我在Eclipse3.3中,這招沒有用,PDE可以解析到%XXX的內容,但是啟動應用程序以后沒有任何效果,所有修改的地方都顯示為%XXX了~
       解決辦法就是:

    請在插件的 MANIFEST.MF 文件后面添加上 Bundle-Localization: plugin 和一個回車應該可以解決你的問題。
       在MF中多加一句就好了~
       遇到同類問題的朋友注意了~

    posted @ 2007-09-13 12:19 阿南 閱讀(1971) | 評論 (9)編輯 收藏
    僅列出標題
    共13頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 Last 
    主站蜘蛛池模板: 亚洲 综合 国产 欧洲 丝袜| 午夜福利不卡片在线播放免费| 处破痛哭A√18成年片免费| 亚洲欧洲高清有无| 91禁漫免费进入| 亚洲另类春色校园小说| 4虎永免费最新永久免费地址| 久久久亚洲欧洲日产国码二区| 性无码免费一区二区三区在线| 亚洲av无码一区二区三区乱子伦| 国产自国产自愉自愉免费24区| 国产AV无码专区亚洲AV漫画 | 亚洲人成色99999在线观看| 中文字幕影片免费在线观看 | 国产福利电影一区二区三区,免费久久久久久久精 | 久久精品国产亚洲AV嫖农村妇女| 久久久久国产精品免费看| 91亚洲导航深夜福利| 7723日本高清完整版免费| 亚洲熟妇AV乱码在线观看| 午夜私人影院免费体验区| 国产大陆亚洲精品国产| 国产亚洲成归v人片在线观看| 国产麻豆成人传媒免费观看| 中文字幕亚洲综合久久2| 四虎在线免费播放| 国产精品免费视频观看拍拍| 亚洲综合精品香蕉久久网97| 日韩精品福利片午夜免费观着| 羞羞视频网站免费入口| 亚洲美女又黄又爽在线观看| free哆啪啪免费永久| 亚洲Av永久无码精品一区二区| 亚洲一区二区三区免费| 最近最好最新2019中文字幕免费| 亚洲色大成网站www永久网站| 久久精品亚洲乱码伦伦中文| 午夜国产精品免费观看| 亚洲精品黄色视频在线观看免费资源 | 精品特级一级毛片免费观看| 亚洲色精品vr一区二区三区|