Bea workshop 3.3出來了,連忙上網(wǎng)下載升級(jí),文件不到170多M,用FlashGet很快就下載了。

          安裝后試用,發(fā)現(xiàn)Workshop Studio Facet Libraries全是空的,和以前的版本一樣需要聯(lián)網(wǎng)下載。從BEA的網(wǎng)站下載速度不敢恭維,巨慢無比,真讓能受不了!!

          Bea為什么不把facet libraries直接做到安裝文件中呢,擔(dān)心安裝包太大?大點(diǎn)沒有什么的。這點(diǎn)JB就做得很好,把需要的庫都做進(jìn)光盤了,不需要你再去尋找下載。

          希望workshop下個(gè)版本能預(yù)裝些libraries!

          posted @ 2006-12-22 13:18 keith 閱讀(1289) | 評(píng)論 (3)編輯 收藏

          都市行 - 在線獲取注冊(cè)碼 (完全免費(fèi))

          序列號(hào):
          E-mail:



          在線獲取注冊(cè)碼地址:http://www.dushixing.com.cn/other/reg.jsp

          posted @ 2006-12-15 10:43 keith| 編輯 收藏

          自都市行發(fā)布以來,得到了廣大網(wǎng)友的熱心支持。都市行1.2版開發(fā)工作基本完成,先發(fā)布個(gè)測(cè)試版供大家測(cè)試,如果沒有太大問題,正式版不久就和大家見面了,同時(shí)也會(huì)提供最新的數(shù)據(jù)。

          測(cè)試版中包括20個(gè)城市的測(cè)試數(shù)據(jù)(正式版發(fā)布會(huì)加入更多的城市數(shù)據(jù)):安慶,北京,長(zhǎng)沙,成都,重慶,大連,佛山,廣州,杭州,濟(jì)南,昆明,南京,青島,上海,沈陽,深圳,蘇州,天津,武漢,烏魯木齊

          文件比較大,有八百多K,如果你的手機(jī)性能或空間有限可以用Winrar打開CityBus1.2Beta.jar,刪除不需要的城市數(shù)據(jù)(數(shù)據(jù)存放在bus\db\),例如刪除北京的數(shù)據(jù),則刪除bus\db\BeiJing整個(gè)目錄就可以了。

          功能特點(diǎn):
          ●提供多城市版本。(NEW)
          ●支持雙向數(shù)據(jù)(即分上下行)。(NEW)
          ●進(jìn)一步優(yōu)化數(shù)據(jù)加載方式,占用內(nèi)存比上個(gè)版本小不少。(NEW)
          ●基于J2ME架構(gòu),大部分MIDP-2.0 CLDC-1.0/CLDC-1.1的手機(jī)都能使用。
          ●優(yōu)化的數(shù)據(jù)結(jié)構(gòu),查詢更快。
          ●支持按線路查詢、過站查詢、換乘查詢。
          ●引入公交(地鐵)營(yíng)運(yùn)時(shí)間,可對(duì)不在班的線路進(jìn)行過濾。

          系統(tǒng)要求:
           大部分MIDP-2.0 CLDC-1.0/CLDC-1.1的JAVA手機(jī)都可以使用。

          下載地址:
          1.2正式版已發(fā)布,測(cè)試版停止下載。

          posted @ 2006-12-15 10:41 keith 閱讀(6429) | 評(píng)論 (72)編輯 收藏

          使用JfreeChart開發(fā)圖表經(jīng)驗(yàn)總結(jié)(含源碼)
          Keith He  2005年10月27日


          最近,公司一項(xiàng)目要出很多的圖表。由于項(xiàng)目是B/S架構(gòu)的,所以生成的圖表也要考慮能在瀏覽器上動(dòng)態(tài)顯示。

          生成基于瀏覽器的圖表方式比較多。據(jù)我所知道的,常用的有三種:
          1、VML方式實(shí)現(xiàn)。這種方式是通過產(chǎn)生客戶端的代碼,由客戶端根據(jù)代碼生成相應(yīng)的圖表。但這種方式產(chǎn)生的圖表有很多的局限性,如受限于瀏覽器,有些瀏覽器可能并不支持VML。另外,沒有封裝完整的圖表開發(fā)包。
          2、通過applet來產(chǎn)生圖表。這種方式也對(duì)客戶端要求比較高,必須要有JRE,而且通過applet生成的圖表在加載過程中會(huì)有個(gè)Java的Log動(dòng)畫。用戶看了可能會(huì)感覺不太舒服。
          3、通過服務(wù)端直接生成圖表的圖片。這種方式對(duì)客戶端幾乎沒有什么要求,缺點(diǎn)是加重了服務(wù)端的負(fù)擔(dān),對(duì)服務(wù)端要求就相對(duì)高了點(diǎn)。

          經(jīng)過比較,根據(jù)項(xiàng)目自身特點(diǎn),我們打算采用第三種方式來開發(fā)圖表。為了縮短開發(fā)周期、節(jié)約成本,我們選用了開源的JFreeChart(http://www.jfree.org/jfreechart/)。

          jfreechart是一個(gè)免費(fèi)創(chuàng)建圖表的java工具,目前最新版本是JFreeChart-1.0.0-rc1。它可以生成各式各樣的圖表。這些圖表包括餅圖、柱狀圖、線形圖、區(qū)域圖、甘特圖等等,基本可以滿足各種項(xiàng)目的要求。但在開發(fā)過程中我也發(fā)現(xiàn)了JFreeChart的一些不足,或者說有些稱得上是BUG。總體說來,JFreeChart還是個(gè)優(yōu)秀的開源項(xiàng)目。

          關(guān)于JFreeChart生成圖表的文章比較多了,我主要談?wù)勈褂肑FreeChart的一些比較棘手問題以及解決方法。同時(shí)也會(huì)將問題所用到的源碼(JFreeChart-1.0.0-rc1+Struts1.2.4)從項(xiàng)目中抽象出來一起提供給大家。

          一、 圖片上熱點(diǎn)鏈接中文亂碼的解決方法

          這個(gè)問題是在我查閱關(guān)于JFreeChart相關(guān)資料時(shí)出現(xiàn)頻率最高的一個(gè)問題。其實(shí)這個(gè)亂碼問題不能怪罪于JFreeChart。有人甚至就因此認(rèn)為JFreeChart對(duì)中文支持不太完善,JFreeChart可要叫了:我是冤枉的!

          我們來找出問題產(chǎn)生的原因,這個(gè)問題也就不難解決了。

          首先查看一下出現(xiàn)問題頁面的Html源文件,你會(huì)發(fā)現(xiàn)在源文件的開頭多出了一段map代碼,代碼類似于這樣:

          <map id="chart-30928.png" name="chart-30928.png">
          <area shape="poly" coords="179,163,176,154,174,145" title="洗衣機(jī)=315(29.86%)" alt=""/>
          …………
          </map>

          <html>
          <head>
          …………


          這部分map代碼其實(shí)是JFreeChart產(chǎn)生的,是用來產(chǎn)生圖片上的熱點(diǎn)鏈接,這也是問題產(chǎn)生的根源所在。你的Jsp頁面通過<%@ page contentType="text/html; charset=UTF-8" %>或者<%@ page contentType="text/html; charset=GBK" %>來設(shè)置contentType這無可厚非,但map并不是由這個(gè)jsp頁面產(chǎn)生的。它是JFreeChart通過PrintWriter產(chǎn)生的。查看一下你生成圖片的Chart源碼,其中有ChartUtilities.writeImageMap(pw, filename, info, false)這樣的語句。這是用來向頁面寫入map代碼的。默認(rèn)情況下,map代碼會(huì)以服務(wù)器默認(rèn)編碼(ISO-8859-1)輸出。這就和你的Jsp編碼不一致,從而產(chǎn)生亂碼。

          原因找到了,問題也就不難解決的。設(shè)置PrintWriter的contentType與Jsp的contentType保存一致就可以了。代碼如下(筆者的Web應(yīng)用是基于Struts框架的):

          //PieMothAciton.java

              
          public ActionForward execute(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response)
                      
          throws Exception {    
                  
                  
          //設(shè)置輸出編碼格式
                  response.setContentType("text/html;charset=UTF-8"); 
                  PrintWriter out 
          = response.getWriter();
                  
                  …………
                  
                  String filename 
          = chart.generatePieChart3D("月統(tǒng)計(jì)比例圖"
                          session, out);
                  
                  String graphURL 
          = request.getContextPath() 
                          
          + "/servlet/DisplayChart?filename=" + filename;
                  
                  request.setAttribute(
          "filename",filename);
                  request.setAttribute(
          "graphURL",graphURL);
                  
                  
          return mapping.findForward(SUCCESS);        
              }


          重新部署你的Web應(yīng)用,中文亂碼文件就可以解決了。

          二、 餅圖顯示百分比

          在餅圖中JFreeChart默認(rèn)只顯示選項(xiàng)和數(shù)值,沒有顯示各項(xiàng)所占比例。由于手頭沒有1.0版的JFreeChart Developer Guide(這可是要錢的,后來想想即使有,也未必能找到關(guān)于百分比這方面的說明),再加上DEMO中的餅圖都沒有顯示百分比,無法參考。后來在網(wǎng)上找到了一個(gè)老版本的例子,其中能顯示百分比。它是通過在PiePlot中設(shè)置的:

          PiePlot pie;
          pie.setPercentFormatString(
          "#,###0.0#%");

          但1.0版本中根本就找不到setPercentFormatString這方法,JFreeChart各版本之間改動(dòng)比較大,很難兼容。還好它是開源的,把它的源碼都搜索了一遍,認(rèn)真讀了一些源碼,終于理出了頭緒。

          原來在1.0.0-rc1版中顯示百分比已經(jīng)調(diào)整到StandardPieItemLabelGenerator構(gòu)造函數(shù)中了,StandardPieItemLabelGenerator有三個(gè)構(gòu)造函數(shù)。StandardPieItemLabelGenerator()不顯示各項(xiàng)所占比例。另外兩個(gè)可以顯示比例。代碼如下:

          plot.setLabelGenerator(new StandardPieItemLabelGenerator(StandardPieItemLabelGenerator.DEFAULT_TOOLTIP_FORMAT));
          //或者采用下面自定義樣式顯示,{0}表示選項(xiàng),{1}表示數(shù)值,{2}表示所占比例
          plot.setLegendLabelGenerator(new StandardPieItemLabelGenerator("{0}: ({1}M, {2})"));

          效果如下圖:



          默認(rèn)顯示百分比是取整的,如果要讓百分比保留二位小數(shù),可以用第三個(gè)構(gòu)造函數(shù):
          plot.setLabelGenerator(new StandardPieItemLabelGenerator(“{0}={1}({2})”,
                              NumberFormat.getNumberInstance(),
                              
          new DecimalFormat("0.00%")));

          效果如下圖:



          三、 混合圖表(不同類型的圖混合顯示)

          我們經(jīng)常用的是柱狀圖、曲線圖、和餅圖,這三類型圖基本能滿足大部分項(xiàng)目的需求。但有些項(xiàng)目比較特殊,可能需要在一張圖上同時(shí)顯示不同類型的圖。這在JFreeChart中可以輕松實(shí)現(xiàn)。例如我們要做個(gè)流量監(jiān)控的系統(tǒng),該系統(tǒng)一天中在不同的時(shí)間段有不同的閥值(最大值),該閥值表示成階梯線。而實(shí)際流量就是個(gè)曲線了。當(dāng)流量在某個(gè)時(shí)段內(nèi)超過閥值時(shí)就觸發(fā)相應(yīng)的事件(如限流)。要表示閥值和流量的對(duì)比關(guān)系就需要兩種類型的圖片在同一張圖表上表示,如下圖:



          首先像創(chuàng)建普通圖表一樣來創(chuàng)建圖片,筆者先創(chuàng)建了一個(gè)XYStep Chart。然后創(chuàng)建第二圖表的Renderer,再分別將第二圖表的Dataset、Renderer添加進(jìn)第一圖表的plot。實(shí)例代碼如下:

          //MultipleChart.java

          JFreeChart jfreechart 
          = ChartFactory.createXYStepAreaChart("監(jiān)控設(shè)置"
                          
          "時(shí)刻"
                          
          "流量"
                          xydataset, 
                          PlotOrientation.VERTICAL, 
                          
          true
                          
          true
                          
          false);
                  
                  XYPlot xyplot 
          = jfreechart.getXYPlot();

          …………

                  
          //設(shè)置第二圖表的Renderer
                  StandardXYItemRenderer standardxyitemrenderer = new StandardXYItemRenderer();
                  standardxyitemrenderer.setToolTipGenerator(
          new StandardXYToolTipGenerator("{0}({1}) = {2}"
                          
          new SimpleDateFormat("HH:mm"), 
                          
          new DecimalFormat("#,##0")));        
                  
                  
          //將第二圖表的Dataset、Renderer添加進(jìn)xyplot
                  xyplot.setDataset(1, lineDataset);
                  xyplot.setRenderer(
          1,standardxyitemrenderer); 


          這樣就創(chuàng)建了曲線和階梯的混合圖表。

          四、 其它問題

          1) 版本問題。
          JFreeChart的各版本變動(dòng)比較大,這在升級(jí)版本時(shí)是比較頭疼的問題,升級(jí)時(shí)需要改動(dòng)你代碼的地方可能比較多。因此盡量采用最新的版本,新版本的文檔可能比較少,但問題要相對(duì)少一些,在舊版中就出現(xiàn)過標(biāo)注數(shù)值重疊在一起這樣的問題。好的是JFreeChart是開源的,碰到解決不了的問題可以從源碼中找到有參考價(jià)值的信息。

          2) 設(shè)置背景透明度的BUG
          不知道這是不是JFreeChart的一個(gè)BUG。利用chart.setBackgroundImageAlpha(0.5f)來設(shè)置背景透明度,ServletUtilities.saveChartAsPNG保存圖片。將chart.setBackgroundImageAlpha(0.5f)注釋掉再生成圖片,發(fā)現(xiàn)兩張圖片是一樣的。也就是說setBackgroundImageAlpha方法無效,具體原因筆者還不太清楚,讀者大家可以自己測(cè)試看看。

          以上是筆者在項(xiàng)目開發(fā)中總結(jié)出來的,希望大家多提寶貴意見!

          附源碼:JFeeChartProject_src.rar (鏈接已失效)

          posted @ 2006-10-25 17:08 keith 閱讀(19731) | 評(píng)論 (51)編輯 收藏

          下午,掏了10塊錢,塞到自動(dòng)售貨機(jī)的投幣口。1秒鐘后退出來了,難道是假幣?
          不甘心,又試了5、6次,它都不認(rèn)。
          仔細(xì)看了看那10塊錢,怎么也不像假幣,還特別新呢。
          我把錢揉了揉,展開,重新塞進(jìn)去,居然認(rèn)了~~
          “真賤!!”我說道。
          門衛(wèi)聽了在一邊偷偷地笑!

          posted @ 2006-10-19 16:18 keith 閱讀(1322) | 評(píng)論 (5)編輯 收藏

          自都市行V1.1.0版推出后得到了廣大網(wǎng)友的熱心支持,給我提供了不少有用的建議,在這里謝謝大家!
          下個(gè)版本,也就是1.2版,都市行將做如下主要改進(jìn):

          1、提供多城市版本。
          2、支持雙向數(shù)據(jù)(即分上下行)。
          3、優(yōu)化一下查詢方式,解決一些手機(jī)Heap-Size太小問題,但這樣會(huì)導(dǎo)致查詢速度下降。目前1.1版的查詢速度經(jīng)測(cè)試還是相當(dāng)快的。

          希望各位熱心網(wǎng)友給新版本多提些建議,謝謝!

          posted @ 2006-10-16 11:15 keith 閱讀(4552) | 評(píng)論 (28)編輯 收藏

          將都市行重新打包了一下,主要針對(duì)MIDP-2.0 CLDC-1.0的手機(jī)。如果是CLDC-1.1的手機(jī)安裝CLDC-1.0的程序會(huì)不會(huì)提示“版本無效”?趕興趣的朋友可以安裝CLDC-1.0版試試,告訴我一下能否正常安裝。至少我的N72(CLDC-1.1的)安裝CLDC-1.0的沒有問題。

          下載地址:
          1.2正式版已發(fā)布,本版本停止下載。

          posted @ 2006-10-16 10:39 keith 閱讀(5708) | 評(píng)論 (52)編輯 收藏

          2006年10月10日 感謝熱心網(wǎng)友醉解蘭舟提供了廣州數(shù)據(jù),下載地址:
          http://www.aygfsteel.com/fastpace/archive/2006/10/08/73721.html

          posted @ 2006-10-10 16:03 keith 閱讀(307) | 評(píng)論 (3)編輯 收藏

          2006年10月9日 感謝熱心網(wǎng)友提供了蘇州數(shù)據(jù),安裝文件已更新了。蘇州的朋友請(qǐng)到這里重新下載:http://www.aygfsteel.com/fastpace/archive/2006/10/08/73721.html

          posted @ 2006-10-09 10:08 keith 閱讀(2203) | 評(píng)論 (2)編輯 收藏

          目前的《都市行》數(shù)據(jù)是網(wǎng)上收集來的,難免有不全或錯(cuò)誤的地方。如果您有新的數(shù)據(jù)文件,請(qǐng)通過本帖評(píng)論或者E-mail:fastpace@163.com(注意此處的@為中文@,發(fā)郵件時(shí)需要換成英文的@)提交給我。以便將《都市行》逐步完善!

          格式最好能提供如下格式,如果您整理起來比較困難,可以發(fā)給我來整理,但希望數(shù)據(jù)能整齊點(diǎn),便于整理。可以是EXCEL、數(shù)據(jù)庫、文本等等。

          謝謝!

          附數(shù)據(jù)文件格式:
          ###########################################################
          #?格式:線路名稱|運(yùn)營(yíng)時(shí)間|備注?
          =?站點(diǎn)1,站點(diǎn)2,......
          #?對(duì)營(yíng)運(yùn)時(shí)間說明:*表示不考慮,
          00:00-24:00表示24小時(shí)營(yíng)運(yùn)
          #?營(yíng)運(yùn)時(shí)間必須是xx:xx-xx:xx格式
          #
          #?$城市名稱
          ###########################################################


          $北京

          001路|
          5:00-7:00|?=?馬官營(yíng),六里橋北里,公主墳?zāi)险?/span>,公主墳,軍事博物館,木樨地,工會(huì)大樓,南禮士路,復(fù)興門,西單,中山公園,天安門,東單,北京站口,日壇路,永安里,大北窯,郎家園,八王墳,四惠站
          001路區(qū)間車|*|?
          =?公主墳,軍事博物館,木樨地,工會(huì)大樓,禮士路,復(fù)興門,西單,中山公園,天安門,東單,北京站口,日壇路,永安里,大北窯,郎家園
          002路|
          5:00-7:00|?=?海戶屯,木樨園,沙子口,永定門,天橋,大柵欄,前門,天安門,東華門,婦產(chǎn)醫(yī)院,沙灘,寬街
          004路|
          5:00-6:00|5:00-6:00?=?靛廠新村,靛廠,吳家村路,馬官營(yíng),馬官營(yíng)東站,六里橋北里,公主墳?zāi)险?/span>,公主墳,軍事博物館,木樨地,工會(huì)大樓,南禮士路,復(fù)興門,西單,中山公園,天安門,東單,北京站口,日壇路,永安里,大北窯,郎家園,八王墳,四惠站
          005路|
          5:00-5:20|5:00-5:20?=?德勝門,德勝門南站,果子市,甘水橋,鑄鐘廠,鼓樓(東城),地安門,景山后街,西板橋,北海,西華門,南長(zhǎng)街,前門北站,前門,珠市口,板章路,虎坊橋西,果子巷,菜市口,牛街,廣安門,廣安門南站,椿樹館街,鴨子橋北里,菜戶營(yíng)北,菜戶營(yíng)
          006路|
          0:20-2:40|全程1元(部分車不停關(guān)廂)?=?麗澤橋,西局,六里橋南里,六里橋,蓮花池(北京西站),灣子,甘石橋(廣安門外),達(dá)官營(yíng),關(guān)廂,廣安門,牛街,菜市口,果子巷,虎坊橋,永安路,友誼醫(yī)院,天橋,金魚池,天壇北門,紅橋,法華寺,體育館西路,北京體育館,北京游樂園

          posted @ 2006-10-08 14:24 keith 閱讀(3630) | 評(píng)論 (24)編輯 收藏

          僅列出標(biāo)題
          共4頁: 上一頁 1 2 3 4 下一頁 
          主站蜘蛛池模板: 廊坊市| 沂水县| 临西县| 甘泉县| 巴马| 衡阳县| 邹平县| 历史| 高邮市| 祁东县| 枣强县| 鄂尔多斯市| 洮南市| 湘潭县| 岳阳县| 大姚县| 阿克苏市| 库尔勒市| 六盘水市| 九龙县| 德庆县| 利川市| 库伦旗| 武山县| 宜宾县| 海兴县| 江北区| 广宁县| 宁晋县| 夏邑县| 讷河市| 遵化市| 桐庐县| 宜君县| 安新县| 灌南县| 张家港市| 万盛区| 九龙县| 龙州县| 正安县|