在文件夾選項(xiàng)里改了驅(qū)動(dòng)器或文件夾的圖標(biāo),發(fā)現(xiàn)雙擊打開(kāi)硬盤(pán)變成了搜索
解決方法:
運(yùn)行
regsvr32 /i shell32.dll
解決!
Google code 獲取密碼頁(yè)打不開(kāi)的解決辦法
# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://yourprj.googlecode.com/svn/trunk/ yourprj --username youraccount
When prompted, enter your generated googlecode.com password.
在文件 C:\Windows\System32\drivers\etc\hosts 中加入 66.249.89.99 code.google.com
1. 進(jìn)入http://code.google.com/ 用Google帳戶登錄(推薦使用gmail郵箱)。然后點(diǎn)擊>Project Hosting
2. 進(jìn)入>> http://code.google.com/hosting/ 然后點(diǎn)擊>Create a new project
3. 填入信息:
寫(xiě)入項(xiàng)目名,描述,兩個(gè)選擇項(xiàng)(不太明白啥意思)選第一個(gè)就好使,寫(xiě)入標(biāo)簽,點(diǎn)擊確定。就可以了
4. 提交成功后,選擇菜單的Source(其中有https上傳協(xié)議路徑需要拷貝一份,還有一個(gè)上傳密碼)。
5. 打開(kāi)MyEclipse,打開(kāi)需要上傳的項(xiàng)目,點(diǎn)鼠標(biāo)右鍵->team->share Project->svn,寫(xiě)入https路徑,下一步,輸入Google賬號(hào)和上傳密碼,起個(gè)名,finish。
6.如果一切順利,會(huì)自動(dòng)生成一個(gè)項(xiàng)目目錄,可以查看所有項(xiàng)目文件。然后進(jìn)入搭建項(xiàng)目界面,點(diǎn)鼠標(biāo)右鍵->team->commit。然后開(kāi)始上傳項(xiàng)目。
7.哦了,搭建完成。
8.如果想查看自己的項(xiàng)目,可以用瀏覽器登陸https的路徑,輸入Google賬號(hào)和上傳密碼,如果成功就可以看到含有項(xiàng)目名稱的目錄。
PS:
需要注意的是,Google的SVN是強(qiáng)制開(kāi)源的哦,如果不想開(kāi)源又沒(méi)服務(wù)器的朋友開(kāi)源選擇svnhost
再PS:
http地址是自讀權(quán)限的,供游客下載代碼,https是我們更新代碼的時(shí)候使用的
轉(zhuǎn)自:http://hi.baidu.com/%C0%AF%B1%CA%B9%A4%D7%F7%CA%D2/blog/item/d6f6c6d7707d81d0a044df5f.html
<property name="hibernate.hbm2ddl.auto" value="update" />
Hibernate Reference Documentation解釋如下:
hibernate.hbm2ddl.auto Automatically validate or export schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly. eg. validate | update | create | create-drop
這個(gè)參數(shù)的作用主要用于:自動(dòng)創(chuàng)建|更新|驗(yàn)證數(shù)據(jù)庫(kù)表結(jié)構(gòu)。
如果沒(méi)有此方面的需求建議不設(shè)置此屬性,默認(rèn)是不對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)作任何改變
其它幾個(gè)參數(shù)的意思:
validate
每次加載hibernate時(shí),驗(yàn)證創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu),只會(huì)和數(shù)據(jù)庫(kù)中的表進(jìn)行比較,不會(huì)創(chuàng)建新表,但是會(huì)插入新值。
create
每次加載hibernate時(shí)都會(huì)刪除上一次的生成的表,然后根據(jù)你的model類再重新來(lái)生成新表,哪怕兩次沒(méi)有任何改變也要這樣執(zhí)行,這就是導(dǎo)致數(shù)據(jù)庫(kù)表數(shù)據(jù)丟失的一個(gè)重要原因。
create-drop
每次加載hibernate時(shí)根據(jù)model類生成表,但是sessionFactory一關(guān)閉,表就自動(dòng)刪除。
update
最常用的屬性,第一次加載hibernate時(shí)根據(jù)model類會(huì)自動(dòng)建立起表的結(jié)構(gòu)(前提是先建立好數(shù)據(jù)庫(kù)),以后加載hibernate時(shí)根據(jù) model類自動(dòng)更新表結(jié)構(gòu),即使表結(jié)構(gòu)改變了但表中的行仍然存在不會(huì)刪除以前的行。要注意的是當(dāng)部署到服務(wù)器后,表結(jié)構(gòu)是不會(huì)被馬上建立起來(lái)的,是要等 應(yīng)用第一次運(yùn)行起來(lái)后才會(huì)。
Java中使用的路徑,分為兩種:絕對(duì)路徑和相對(duì)路徑。歸根結(jié)底,Java本質(zhì)上只能使用絕對(duì)路徑來(lái)尋找資源。所有的相對(duì)路徑尋找資源的方法,都不過(guò)是一些便利方法。不過(guò)是API在底層幫助我們構(gòu)建了絕對(duì)路徑,從而找到資源的!
在開(kāi)發(fā)Web方面的應(yīng)用時(shí), 經(jīng)常需要獲取 服務(wù)器中當(dāng)前WebRoot的物理路徑。
如果是Servlet , Action , Controller, 或則Filter , Listener , 攔截器等相關(guān)類時(shí), 我們只需要獲得ServletContext, 然后通過(guò)ServletContext.getRealPath("/")來(lái)獲取當(dāng)前應(yīng)用在服務(wù)器上的物理地址。
如果在類中取不到ServletContext時(shí), 有兩種方式可以做到:
1. 利用Java的類加載機(jī)制 調(diào)用 XXX.class.getClassLoader().getResource(""); 方法來(lái)獲取到ClassPath , 然后處理獲得WebRoot目錄,這種方式只能是該class在WebRoot/WEB-INF/classes下才能生效, 如果該class被打包到一個(gè)jar文件中, 則該方法失效。這時(shí)就應(yīng)該用下面一種方式。
2. spring框架的思路, 在WEB-INF/web.xml中 , 創(chuàng)建一個(gè)webAppRootKey的param, 指定一個(gè)值(默認(rèn)為webapp.root)作為鍵值, 然后通過(guò)Listener , 或者Filter , 或者Servlet 執(zhí)行String webAppRootKey = getServletContext().getRealPath("/"); 并將webAppRootKey對(duì)應(yīng)的webapp.root 分別作為Key , Value寫(xiě)到System Properties系統(tǒng)屬性中。之后在程序中通過(guò)System.getProperty("webapp.root")來(lái)獲得WebRoot的物理路 徑。
根據(jù)第二種的思路,我們還可以再擴(kuò)展一下。不過(guò)對(duì)于在部署在一臺(tái)服務(wù)器中的應(yīng)用來(lái)說(shuō),若還不是你所需請(qǐng)?jiān)偻驴础?/p>
下面是一些得到classpath和當(dāng)前類的絕對(duì)路徑的一些方法。你可使用其中的一些方法來(lái)得到你需要的資源的絕對(duì)路徑:
1. DebitNoteAction.class.getResource("")
得到的是當(dāng)前類FileTest.class文件的URI目錄。不包括自己!
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
atacarnet/src/com/evi/modules/atacarnet/action/
2. DebitNoteAction.class.getResource("/")
得到的是當(dāng)前的classpath的絕對(duì)URI路徑。
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
3. Thread.currentThread().getContextClassLoader().getResource("")
得到的也是當(dāng)前ClassPath的絕對(duì)URI路徑
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
4. DebitNoteAction.class.getClassLoader().getResource("") 或ClassLoader.getSystemResource("")
得到的也是當(dāng)前ClassPath的絕對(duì)URI路徑。
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
5. 取得服務(wù)器相對(duì)路徑
System.getProperty("user.dir")
例如:E:\apache-tomcat-5.5.16\apache-tomcat-5.5.16\bin
我推薦使用Thread.currentThread().getContextClassLoader().getResource("")來(lái)得到當(dāng)前的classpath的絕對(duì)路徑的URI表示法
6. 取得項(xiàng)目中的絕對(duì)路徑
一般用request.getRealPath("/")或request.getRealPath("/config/")
但現(xiàn)在不提倡使用request.getRealPath("/")了,大家可試用ServletContext.getRealPath("/")方法得到Web應(yīng)用程序的根目錄的絕對(duì)路徑
要取得src的文件非常容易,因?yàn)閟rc是默認(rèn)的相對(duì)目錄,比如你說(shuō)要取得src下com目錄的test.java文件,你只需要這樣就夠了
File f = new File(com/test.java);
但如果我要取得不在src目錄或者WebRoot目錄下的文件呢,而是要從src或者WebRoot同級(jí)的目錄中取呢,比如說(shuō)doc吧
我的硬方法是這樣實(shí)現(xiàn)的:
String path = this.getServletContext().getRealPath("/");
Properties p = new Properties();
p.load(new FileInputStream(new File(path.substring(0,(path.lastIndexOf("\\WebRoot ") + 1)) + "doc/db.properties")));
System.out.println(p.getProperty("driverName"));
轉(zhuǎn)自:http://blog.csdn.net/c5153000/archive/2011/03/23/6272195.aspx
啥也不說(shuō)了,看圖吧 有很多時(shí)候,我們刪除文件,系統(tǒng)會(huì)提示找不到指定的文件。但是你可以看到文件在硬盤(pán)里面,這個(gè)問(wèn)題需要怎么解決呢?一般情況下,我們可以使用軟件解決。不過(guò)推薦使用DOS命令,找不到指定文件通常使用一下方法解決。
1、新建一個(gè)文本文檔,寫(xiě)入(直接復(fù)制粘貼)下列命令:
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
2、另存為:刪除OK.bat 。
3、建好后,把要?jiǎng)h除的文件或者目錄直接拖放到這個(gè)bat文件圖標(biāo)上就可以刪除了,一切OK!
------------------------------------------------------------------------------------------------
在說(shuō)另種方法,提供刪除方法(以刪除c 盤(pán)"xxxxxx..."文件夾為例),在執(zhí)行刪除動(dòng)作時(shí),提示文件夾無(wú)法刪除,找不到指定路徑
解決方法:由于該文件夾真正的名稱為"xxxxxx..."" 所以我們就必須寫(xiě)對(duì)文件名.
操作:開(kāi)始—運(yùn)行—輸入“cmd”回車——輸入“C: ”回車—輸入 RMDIR 空格 C:"xxxxxx..." 空格 /S 空格 /Q 回車即可刪除。
注意:需要?jiǎng)h除其他類似文件,把盤(pán)符和xxxxxx...改為你電腦里面的盤(pán)符和文件名即可!
或新建記事本,在記事本寫(xiě)入:RMDIR 空格文件夾" /S /Q 保存(保存前把“文件夾”改為你要?jiǎng)h除文件夾的名稱)退出把記事本的后綴名改成“bat”(如:新建文本文檔.txt 改成新文本文檔 .bat)然后剪切到你要?jiǎng)h除文件夾所在的目錄,最后點(diǎn)擊你粘貼過(guò)來(lái)的文件-->運(yùn)行就OK了
==================================================
1.Linux安裝增強(qiáng)功能
2.VirtualBox 分配數(shù)據(jù)空間
3.Linux中建共享文件夾掛載的目錄(如mkdir /mnt/share)
4.linux掛載共 享文件夾(sudo mount –t vboxsf [設(shè)置的共享文件夾名稱] /mnt/share)
二、Linux中虛擬windows1.windows安裝增強(qiáng)功能
2.VirtualBox分配數(shù)據(jù)空間
3.windows 中我的電腦右鍵-映射網(wǎng)絡(luò)驅(qū)動(dòng)器-瀏覽-選中分配的共享文件夾
摘要: 最近用到了JFreeChart,現(xiàn)將實(shí)例代碼貼出來(lái),大家可以參考一下,代碼中如有錯(cuò)誤或可以改進(jìn)的地方,還請(qǐng)大家指正。 通過(guò)下面的代碼,可以很清晰地看出JFreeChart的結(jié)構(gòu),核心即為chart, plot, XXXAxis, renderer,了解了它們的常用方法后, 會(huì)發(fā)現(xiàn)其實(shí)JFreeChart使用起來(lái)是很簡(jiǎn)單方便的。廢話不多說(shuō)了,還是直接看示例吧。 1.柱狀圖 ... 閱讀全文 1,apache_2.0.63-win32-x86-no_ssl.msimyeclipse中UTF-8設(shè)置
如果要使插件開(kāi)發(fā)應(yīng)用能有更好的國(guó)際化支持,能夠最大程度的支持中文輸出,則最好使 Java文件使用UTF-8編碼。然而,Eclipse工作空間(workspace)的缺省字符編碼是操作系統(tǒng)缺省的編碼,簡(jiǎn)體中文操作系統(tǒng) (Windows XP、Windows 2000簡(jiǎn)體中文)的缺省編碼是GB18030,在此工作空間中建立的工程編碼是GB18030,工程中建立的java文件也是GB18030。如果要使 新建立工程、java文件直接使UTF-8則需要做以下工作:
1、windows->Preferences...打開(kāi)"首選項(xiàng)"對(duì)話框,左側(cè)導(dǎo)航樹(shù),導(dǎo)航到general->Workspace,右 側(cè)Text file encoding,選擇Other,改變?yōu)?/span>UTF-8,以后新建立工程其屬性對(duì)話框中的Text file encoding即為UTF-8。
2、windows->Preferences...打開(kāi)"首選項(xiàng)"對(duì)話框,左側(cè)導(dǎo)航樹(shù),導(dǎo)航到general->Content Types,右側(cè)Context Types樹(shù),點(diǎn)開(kāi)Text,選擇Java Source File,在下面的Default encoding輸入框中輸入UTF-8,點(diǎn)Update,則設(shè)置Java文件編碼為UTF-8。其他java應(yīng)用開(kāi)發(fā)相關(guān)的文件 如:properties、XML等已經(jīng)由Eclipse缺省指定,分別為ISO8859-1,UTF-8,如開(kāi)發(fā)中確需改變編碼格式則可以在此指定。
3、經(jīng)過(guò)上述兩步,新建java文件即為UTF-8編碼,Eclipse編譯、運(yùn)行、調(diào)試都沒(méi)問(wèn)題,但是做RCP應(yīng)用的Product輸出時(shí)、或者插件 輸出時(shí),則總是出錯(cuò),要么不能編譯通過(guò)(輸出時(shí)要重新compile)、要么輸出的插件運(yùn)行時(shí)中文顯示亂碼。此時(shí)需要再RCP應(yīng)用、或插件Plugin工 程的build.properties中增加一行,javacDefaultEncoding.. = UTF-8。讓輸出時(shí)編譯知道java源文件時(shí)UTF-8編碼。這個(gè)設(shè)置需要保證所有的java源文件時(shí)UTF-8編碼格式,如果不全是,可以參考 Eclipse幫中(Plug-in Development Environment Guide > Reference > Feature and Plug-in Build configuration),建議全部java源文件是UTF-8編碼。
如果插件開(kāi)發(fā)、RCP應(yīng)用開(kāi)發(fā)原來(lái)基于其他編碼,如GB18030,想轉(zhuǎn)換為UTF-8,則首先,做以上工作;然后通過(guò)查找編碼轉(zhuǎn)換工具,如基于 iconv的批量轉(zhuǎn)換工具,將原編碼轉(zhuǎn)換為UTF-8編碼,注意只轉(zhuǎn)換java源文件,其他類型文件可能已經(jīng)是比較合適的編碼了;將原工程屬性中的 Text file encoding,從原編碼改為UTF-8即可。
JFreeChart類:
void setAntiAlias(boolean flag) 字體模糊邊界
void setBackgroundImage(Image image) 背景圖片
void setBackgroundImageAlignment(int alignment) 背景圖片對(duì)齊方式(參數(shù)常量在org.jfree.ui.Align類中定義)
void setBackgroundImageAlpha(float alpha) 背景圖片透明度(0.0~1.0)
void setBackgroundPaint(Paint paint) 背景色
void setBorderPaint(Paint paint) 邊界線條顏色
void setBorderStroke(Stroke stroke) 邊界線條筆觸
void setBorderVisible(boolean visible) 邊界線條是否可見(jiàn)
-----------------------------------------------------------------------------------------------------------
TextTitle類:
void setFont(Font font) 標(biāo)題字體
void setPaint(Paint paint) 標(biāo)題字體顏色
void setText(String text) 標(biāo)題內(nèi)容
-----------------------------------------------------------------------------------------------------------
StandardLegend(Legend)類:
void setBackgroundPaint(Paint paint) 圖示背景色
void setTitle(String title) 圖示標(biāo)題內(nèi)容
void setTitleFont(Font font) 圖示標(biāo)題字體
void setBoundingBoxArcWidth(int arcWidth) 圖示邊界圓角寬
void setBoundingBoxArcHeight(int arcHeight) 圖示邊界圓角高
void setOutlinePaint(Paint paint) 圖示邊界線條顏色
void setOutlineStroke(Stroke stroke) 圖示邊界線條筆觸
void setDisplaySeriesLines(boolean flag) 圖示項(xiàng)是否顯示橫線(折線圖有效)
void setDisplaySeriesShapes(boolean flag) 圖示項(xiàng)是否顯示形狀(折線圖有效)
void setItemFont(Font font) 圖示項(xiàng)字體
void setItemPaint(Paint paint) 圖示項(xiàng)字體顏色
void setAnchor(int anchor) 圖示在圖表中的顯示位置(參數(shù)常量在Legend類中定義)
-----------------------------------------------------------------------------------------------------------
Axis類:
void setVisible(boolean flag) 坐標(biāo)軸是否可見(jiàn)
void setAxisLinePaint(Paint paint) 坐標(biāo)軸線條顏色(3D軸無(wú)效)
void setAxisLineStroke(Stroke stroke) 坐標(biāo)軸線條筆觸(3D軸無(wú)效)
void setAxisLineVisible(boolean visible) 坐標(biāo)軸線條是否可見(jiàn)(3D軸無(wú)效)
void setFixedDimension(double dimension) (用于復(fù)合表中對(duì)多坐標(biāo)軸的設(shè)置)
void setLabel(String label) 坐標(biāo)軸標(biāo)題
void setLabelFont(Font font) 坐標(biāo)軸標(biāo)題字體
void setLabelPaint(Paint paint) 坐標(biāo)軸標(biāo)題顏色
void setLabelAngle(double angle)` 坐標(biāo)軸標(biāo)題旋轉(zhuǎn)角度(縱坐標(biāo)可以旋轉(zhuǎn))
void setTickLabelFont(Font font) 坐標(biāo)軸標(biāo)尺值字體
void setTickLabelPaint(Paint paint) 坐標(biāo)軸標(biāo)尺值顏色
void setTickLabelsVisible(boolean flag) 坐標(biāo)軸標(biāo)尺值是否顯示
void setTickMarkPaint(Paint paint) 坐標(biāo)軸標(biāo)尺顏色
void setTickMarkStroke(Stroke stroke) 坐標(biāo)軸標(biāo)尺筆觸
void setTickMarksVisible(boolean flag) 坐標(biāo)軸標(biāo)尺是否顯示
ValueAxis(Axis)類:
void setAutoRange(boolean auto) 自動(dòng)設(shè)置數(shù)據(jù)軸數(shù)據(jù)范圍
void setAutoRangeMinimumSize(double size) 自動(dòng)設(shè)置數(shù)據(jù)軸數(shù)據(jù)范圍時(shí)數(shù)據(jù)范圍的最小跨度
void setAutoTickUnitSelection(boolean flag) 數(shù)據(jù)軸的數(shù)據(jù)標(biāo)簽是否自動(dòng)確定(默認(rèn)為true)
void setFixedAutoRange(double length) 數(shù)據(jù)軸固定數(shù)據(jù)范圍(設(shè)置100的話就是顯示MAXVALUE到MAXVALUE-100那段數(shù)據(jù)范圍)
void setInverted(boolean flag) 數(shù)據(jù)軸是否反向(默認(rèn)為false)
void setLowerMargin(double margin) 數(shù)據(jù)軸下(左)邊距
void setUpperMargin(double margin) 數(shù)據(jù)軸上(右)邊距
void setLowerBound(double min) 數(shù)據(jù)軸上的顯示最小值
void setUpperBound(double max) 數(shù)據(jù)軸上的顯示最大值
void setPositiveArrowVisible(boolean visible) 是否顯示正向箭頭(3D軸無(wú)效)
void setNegativeArrowVisible(boolean visible) 是否顯示反向箭頭(3D軸無(wú)效)
void setVerticalTickLabels(boolean flag) 數(shù)據(jù)軸數(shù)據(jù)標(biāo)簽是否旋轉(zhuǎn)到垂直
void setStandardTickUnits(TickUnitSource source) 數(shù)據(jù)軸的數(shù)據(jù)標(biāo)簽(可以只顯示整數(shù)標(biāo)簽,需要將AutoTickUnitSelection設(shè)false)
NumberAxis(ValueAxis)類:
void setAutoRangeIncludesZero(boolean flag) 是否強(qiáng)制在自動(dòng)選擇的數(shù)據(jù)范圍中包含0
void setAutoRangeStickyZero(boolean flag) 是否強(qiáng)制在整個(gè)數(shù)據(jù)軸中包含0,即使0不在數(shù)據(jù)范圍中
void setNumberFormatOverride(NumberFormat formatter) 數(shù)據(jù)軸數(shù)據(jù)標(biāo)簽的顯示格式
void setTickUnit(NumberTickUnit unit) 數(shù)據(jù)軸的數(shù)據(jù)標(biāo)簽(需要將AutoTickUnitSelection設(shè)false)
DateAxis(ValueAxis)類:
void setMaximumDate(Date maximumDate) 日期軸上的最小日期
void setMinimumDate(Date minimumDate) 日期軸上的最大日期
void setRange(Date lower,Date upper) 日期軸范圍
void setDateFormatOverride(DateFormat formatter) 日期軸日期標(biāo)簽的顯示格式
void setTickUnit(DateTickUnit unit) 日期軸的日期標(biāo)簽(需要將AutoTickUnitSelection設(shè)false)
void setTickMarkPosition(DateTickMarkPosition position) 日期標(biāo)簽位置(參數(shù)常量在org.jfree.chart.axis.DateTickMarkPosition類中定義)
CategoryAxis(Axis)類:
void setCategoryMargin(double margin) 分類軸邊距
void setLowerMargin(double margin) 分類軸下(左)邊距
void setUpperMargin(double margin) 分類軸上(右)邊距
void setVerticalCategoryLabels(boolean flag) 分類軸標(biāo)題是否旋轉(zhuǎn)到垂直
void setMaxCategoryLabelWidthRatio(float ratio) 分類軸分類標(biāo)簽的最大寬度
-----------------------------------------------------------------------------------------------------------
Plot類:
void setBackgroundImage(Image image) 數(shù)據(jù)區(qū)的背景圖片
void setBackgroundImageAlignment(int alignment) 數(shù)據(jù)區(qū)的背景圖片對(duì)齊方式(參數(shù)常量在org.jfree.ui.Align類中定義)
void setBackgroundPaint(Paint paint) 數(shù)據(jù)區(qū)的背景圖片背景色
void setBackgroundAlpha(float alpha) 數(shù)據(jù)區(qū)的背景透明度(0.0~1.0)
void setForegroundAlpha(float alpha) 數(shù)據(jù)區(qū)的前景透明度(0.0~1.0)
void setDataAreaRatio(double ratio) 數(shù)據(jù)區(qū)占整個(gè)圖表區(qū)的百分比
void setOutLinePaint(Paint paint) 數(shù)據(jù)區(qū)的邊界線條顏色
void setOutLineStroke(Stroke stroke) 數(shù)據(jù)區(qū)的邊界線條筆觸
void setNoDataMessage(String message) 沒(méi)有數(shù)據(jù)時(shí)顯示的消息
void setNoDataMessageFont(Font font) 沒(méi)有數(shù)據(jù)時(shí)顯示的消息字體
void setNoDataMessagePaint(Paint paint) 沒(méi)有數(shù)據(jù)時(shí)顯示的消息顏色
CategoryPlot(Plot)類:
void setDataset(CategoryDataset dataset) 數(shù)據(jù)區(qū)的2維數(shù)據(jù)表
void setColumnRenderingOrder(SortOrder order) 數(shù)據(jù)分類的排序方式
void setAxisOffset(Spacer offset) 坐標(biāo)軸到數(shù)據(jù)區(qū)的間距
void setOrientation(PlotOrientation orientation) 數(shù)據(jù)區(qū)的方向(PlotOrientation.HORIZONTAL或PlotOrientation.VERTICAL)
void setDomainAxis(CategoryAxis axis) 數(shù)據(jù)區(qū)的分類軸
void setDomainAxisLocation(AxisLocation location) 分類軸的位置(參數(shù)常量在org.jfree.chart.axis.AxisLocation類中定義)
void setDomainGridlinesVisible(boolean visible) 分類軸網(wǎng)格是否可見(jiàn)
void setDomainGridlinePaint(Paint paint) 分類軸網(wǎng)格線條顏色
void setDomainGridlineStroke(Stroke stroke) 分類軸網(wǎng)格線條筆觸
void setRangeAxis(ValueAxis axis) 數(shù)據(jù)區(qū)的數(shù)據(jù)軸
void setRangeAxisLocation(AxisLocation location) 數(shù)據(jù)軸的位置(參數(shù)常量在org.jfree.chart.axis.AxisLocation類中定義)
void setRangeGridlinesVisible(boolean visible) 數(shù)據(jù)軸網(wǎng)格是否可見(jiàn)
void setRangeGridlinePaint(Paint paint) 數(shù)據(jù)軸網(wǎng)格線條顏色
void setRangeGridlineStroke(Stroke stroke) 數(shù)據(jù)軸網(wǎng)格線條筆觸
void setRenderer(CategoryItemRenderer renderer) 數(shù)據(jù)區(qū)的表示者(詳見(jiàn)Renderer組)
void addAnnotation(CategoryAnnotation annotation) 給數(shù)據(jù)區(qū)加一個(gè)注釋
void addRangeMarker(Marker marker,Layer layer) 給數(shù)據(jù)區(qū)加一個(gè)數(shù)值范圍區(qū)域
PiePlot(Plot)類:
void setDataset(PieDataset dataset) 數(shù)據(jù)區(qū)的1維數(shù)據(jù)表
void setIgnoreNullValues(boolean flag) 忽略無(wú)值的分類
void setCircular(boolean flag) 餅圖是否一定是正圓
void setStartAngle(double angle) 餅圖的初始角度
void setDirection(Rotation direction) 餅圖的旋轉(zhuǎn)方向
void setExplodePercent(int section,double percent) 抽取的那塊(1維數(shù)據(jù)表的分類下標(biāo))以及抽取出來(lái)的距離(0.0~1.0),3D餅圖無(wú)效
void setLabelBackgroundPaint(Paint paint) 分類標(biāo)簽的底色
void setLabelFont(Font font) 分類標(biāo)簽的字體
void setLabelPaint(Paint paint) 分類標(biāo)簽的字體顏色
void setLabelLinkMargin(double margin) 分類標(biāo)簽與圖的連接線邊距
void setLabelLinkPaint(Paint paint) 分類標(biāo)簽與圖的連接線顏色
void setLabelLinkStroke(Stroke stroke) 分類標(biāo)簽與圖的連接線筆觸
void setLabelOutlinePaint(Paint paint) 分類標(biāo)簽邊框顏色
void setLabelOutlineStroke(Paint paint) 分類標(biāo)簽邊框筆觸
void setLabelShadowPaint(Paint paint) 分類標(biāo)簽陰影顏色
void setMaximumLabelWidth(double width) 分類標(biāo)簽的最大長(zhǎng)度(0.0~1.0)
void setPieIndex(int index) 餅圖的索引(復(fù)合餅圖中用到)
void setSectionOutlinePaint(int section,Paint paint) 指定分類餅的邊框顏色
void setSectionOutlineStroke(int section,Stroke stroke) 指定分類餅的邊框筆觸
void setSectionPaint(int section,Paint paint) 指定分類餅的顏色
void setShadowPaint(Paint paint) 餅圖的陰影顏色
void setShadowXOffset(double offset) 餅圖的陰影相對(duì)圖的水平偏移
void setShadowYOffset(double offset) 餅圖的陰影相對(duì)圖的垂直偏移
void setLabelGenerator(PieSectionLabelGenerator generator) 分類標(biāo)簽的格式,設(shè)置成null則整個(gè)標(biāo)簽包括連接線都不顯示
void setToolTipGenerator(PieToolTipGenerator generator) MAP中鼠標(biāo)移上的顯示格式
void setURLGenerator(PieURLGenerator generator) MAP中鉆取鏈接格式
PiePlot3D(PiePlot)類:
void setDepthFactor(double factor) 3D餅圖的Z軸高度(0.0~1.0)
MultiplePiePlot(Plot)類:
void setLimit(double limit) 每個(gè)餅圖之間的數(shù)據(jù)關(guān)聯(lián)(詳細(xì)比較復(fù)雜)
void setPieChart(JFreeChart pieChart) 每個(gè)餅圖的顯示方式(見(jiàn)JFreeChart類個(gè)PiePlot類)
-----------------------------------------------------------------------------------------------------------
AbstractRenderer類:
void setItemLabelAnchorOffset(double offset) 數(shù)據(jù)標(biāo)簽的與數(shù)據(jù)點(diǎn)的偏移
void setItemLabelsVisible(boolean visible) 數(shù)據(jù)標(biāo)簽是否可見(jiàn)
void setItemLabelFont(Font font) 數(shù)據(jù)標(biāo)簽的字體
void setItemLabelPaint(Paint paint) 數(shù)據(jù)標(biāo)簽的字體顏色
void setItemLabelPosition(ItemLabelPosition position) 數(shù)據(jù)標(biāo)簽位置
void setPositiveItemLabelPosition(ItemLabelPosition position) 正數(shù)標(biāo)簽位置
void setNegativeItemLabelPosition(ItemLabelPosition position) 負(fù)數(shù)標(biāo)簽位置
void setOutLinePaint(Paint paint) 圖形邊框的線條顏色
void setOutLineStroke(Stroke stroke) 圖形邊框的線條筆觸
void setPaint(Paint paint) 所有分類圖形的顏色
void setShape(Shape shape) 所有分類圖形的形狀(如折線圖的點(diǎn))
void setStroke(Stroke stroke) 所有分類圖形的筆觸(如折線圖的線)
void setSeriesItemLabelsVisible(int series,boolean visible) 指定分類的數(shù)據(jù)標(biāo)簽是否可見(jiàn)
void setSeriesItemLabelFont(int series,Font font) 指定分類的數(shù)據(jù)標(biāo)簽的字體
void setSeriesItemLabelPaint(int series,Paint paint) 指定分類的數(shù)據(jù)標(biāo)簽的字體顏色
void setSeriesItemLabelPosition(int series,ItemLabelPosition position) 數(shù)據(jù)標(biāo)簽位置
void setSeriesPositiveItemLabelPosition(int series,ItemLabelPosition position) 正數(shù)標(biāo)簽位置
void setSeriesNegativeItemLabelPosition(int series,ItemLabelPosition position) 負(fù)數(shù)標(biāo)簽位置
void setSeriesOutLinePaint(int series,Paint paint) 指定分類的圖形邊框的線條顏色
void setSeriesOutLineStroke(int series,Stroke stroke) 指定分類的圖形邊框的線條筆觸
void setSeriesPaint(int series,Paint paint) 指定分類圖形的顏色
void setSeriesShape(int series,Shape shape) 指定分類圖形的形狀(如折線圖的點(diǎn))
void setSeriesStroke(int series,Stroke stroke) 指定分類圖形的筆觸(如折線圖的線)
AbstractCategoryItemRenderer(AbstractRenderer)類:
void setLabelGenerator(CategoryLabelGenerator generator) 數(shù)據(jù)標(biāo)簽的格式
void setToolTipGenerator(CategoryToolTipGenerator generator) MAP中鼠標(biāo)移上的顯示格式
void setItemURLGenerator(CategoryURLGenerator generator) MAP中鉆取鏈接格式
void setSeriesLabelGenerator(int series,CategoryLabelGenerator generator) 指定分類的數(shù)據(jù)標(biāo)簽的格式
void setSeriesToolTipGenerator(int series,CategoryToolTipGenerator generator) 指定分類的MAP中鼠標(biāo)移上的顯示格式
void setSeriesItemURLGenerator(int series,CategoryURLGenerator generator) 指定分類的MAP中鉆取鏈接格式
BarRenderer(AbstractCategoryItemRenderer)類:
void setDrawBarOutline(boolean draw) 是否畫(huà)圖形邊框
void setItemMargin(double percent) 每個(gè)BAR之間的間隔
void setMaxBarWidth(double percent) 每個(gè)BAR的最大寬度
void setMinimumBarLength(double min) 最短的BAR長(zhǎng)度,避免數(shù)值太小而顯示不出
void setPositiveItemLabelPositionFallback(ItemLabelPosition position) 無(wú)法在BAR中顯示的正數(shù)標(biāo)簽位置
void setNegativeItemLabelPositionFallback(ItemLabelPosition position) 無(wú)法在BAR中顯示的負(fù)數(shù)標(biāo)簽位置
BarRenderer3D(BarRenderer)類:
void setWallPaint(Paint paint) 3D坐標(biāo)軸的墻體顏色
StackedBarRenderer(BarRenderer)類:
沒(méi)有特殊的設(shè)置
StackedBarRenderer3D(BarRenderer3D)類:
沒(méi)有特殊的設(shè)置
GroupedStackedBarRenderer(StackedBarRenderer)類:
void setSeriesToGroupMap(KeyToGroupMap map)將分類自由的映射成若干個(gè)組(KeyToGroupMap.mapKeyToGroup(series,group))
LayeredBarRenderer(BarRenderer)類:
void setSeriesBarWidth(int series,double width) 設(shè)定每個(gè)分類的寬度(注意設(shè)置不要使某分類被覆蓋)
WaterfallBarRenderer(BarRenderer)類:
void setFirstBarPaint(Paint paint) 第一個(gè)柱圖的顏色
void setLastBarPaint(Paint paint) 最后一個(gè)柱圖的顏色
void setPositiveBarPaint(Paint paint) 正值柱圖的顏色
void setNegativeBarPaint(Paint paint) 負(fù)值柱圖的顏色
IntervalBarRenderer(BarRenderer)類:
需要傳IntervalCategoryDataset作為數(shù)據(jù)源
GanttBarRenderer(IntervalBarRenderer)類:
void setCompletePaint(Paint paint) 完成進(jìn)度顏色
void setIncompletePaint(Paint paint) 未完成進(jìn)度顏色
void setStartPercent(double percent) 設(shè)置進(jìn)度條在整條中的起始位置(0.0~1.0)
void setEndPercent(double percent) 設(shè)置進(jìn)度條在整條中的結(jié)束位置(0.0~1.0)
StatisticBarRenderer(BarRenderer)類:
需要傳StatisticCategoryDataset作為數(shù)據(jù)源
LineAndShapeRenderer(AbstractCategoryItemRenderer)類:
void setDrawLines(boolean draw) 是否折線的數(shù)據(jù)點(diǎn)之間用線連
void setDrawShapes(boolean draw) 是否折線的數(shù)據(jù)點(diǎn)根據(jù)分類使用不同的形狀
void setShapesFilled(boolean filled) 所有分類是否填充數(shù)據(jù)點(diǎn)圖形
void setSeriesShapesFilled(int series,boolean filled) 指定分類是否填充數(shù)據(jù)點(diǎn)圖形
void setUseFillPaintForShapeOutline(boolean use) 指定是否填充數(shù)據(jù)點(diǎn)的Paint也被用于畫(huà)數(shù)據(jù)點(diǎn)形狀的邊框
LevelRenderer(AbstractCategoryItemRenderer)類:
void setItemMargin(double percent) 每個(gè)分類之間的間隔
void setMaxItemWidth(double percent) 每個(gè)分類的最大寬度
CategoryStepRenderer(AbstractCategoryItemRenderer)類:
void setStagger(boolean shouldStagger) 不同分類的圖是否交錯(cuò)
MinMaxCategoryRenderer(AbstractCategoryItemRenderer)類:
void setDrawLines(boolean drawLines) 是否在每個(gè)分類線間畫(huà)連接線
void setGroupPaint(Paint groupPaint) 一組圖形連接線的顏色
void setGroupStroke(Stroke groupStroke) 一組圖形連接線的筆觸
void setMaxIcon(Icon maxIcon) 最大值的ICON
void setMinIcon(Icon minIcon) 最小值的ICON
void setObjectIcon(Icon objectIcon) 所有值的ICON
AreaRender(AbstractCategoryItemRenderer)類:
沒(méi)有特殊的設(shè)置
StackedAreaRender(AreaRender)類:
沒(méi)有特殊的設(shè)置
JFreeChart提供工廠類ChartFactory方便使用者生成各種不同的圖形。ChartFactory類的各個(gè)工廠方法中實(shí)現(xiàn)對(duì)具體Plot的指定以及對(duì)類JFreeChart構(gòu)造函數(shù)的調(diào)用。
下面以常用圖形說(shuō)一下常用的使用流程(大部分的操作講的并不全面,比如JFreeChart可能提供了很多增加、修改數(shù)據(jù)的方式,下文中可能只列舉一種)。
1柱狀圖
(1)平面柱狀圖
生成柱狀圖操作:
JFreeChartchart=ChartFactory.createBarChart(String title,//圖標(biāo)題
String categoryAxisLabel,//x軸標(biāo)題
String valueAxisLabel,//y軸標(biāo)題
CategoryDataset dataset,//數(shù)據(jù)源
PlotOrientation orientation,//顯示方向
Boolean legend,//是否顯示圖例
Boolean tooltips,//是否顯示tooltip
Boolean urls);//是否指定url
平面柱狀圖的Plot對(duì)象是CategoryPlot類型。CategoryPlot對(duì)象的x軸是CategoryAxis對(duì)象,y軸是NumberAxis對(duì)象,繪制單元是BarRenderer對(duì)象,數(shù)據(jù)源是CategoryDataset對(duì)象。
獲取CategoryPlot對(duì)象操作為:
CategoryPlot plot = (CategoryPlot)chart.getPlot();或者
CategoryPlot plot = chart.getCategoryPlot();
獲取繪制單元操作:
BarRenderer renderer = (BarRenderer)plot.getRenderer();
獲取x軸的操作:
CategoryAxis xAxis = (CategoryAxis)plot.getDomainAxis();
獲取y軸操作:
NumberAxis yAxis = (NumberAxis)plot.getRangeAxis();
獲取數(shù)據(jù)源:
CategoryDataset dataset = plot.getDataset();
柱狀圖可以接受一切CategoryDataset類型的數(shù)據(jù)源,下面講解一下常用的CategoryDataset類型DefaultCategoryDataset的使用方式
實(shí)例化:
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
增加數(shù)據(jù)
dataset.addValue(doublevalue,ComparablerowKey,ComparablecolumnKey);
刪除數(shù)據(jù):
dataset.removeValue(ComparablerowKey,ComparablecolumnKey);
或者
dataset.removeColumn(intcolumnIndex);
或者
dataset.removeColumn(ComparablecolumnKey);
對(duì)行同樣有上述兩種刪除方式,不在列舉。
修改數(shù)據(jù):
dataset.setValue(doublevalue,ComparablerowKey,ComparablecolumnKey);
查詢數(shù)據(jù):
對(duì)plot對(duì)象、繪制單元、x軸、y軸的顯示特性修改不再一一介紹。
(2)3D柱狀圖
對(duì)應(yīng)的工廠方法為createBarChart3D,該方法的參數(shù)與平面柱狀圖相同。3D柱狀圖的Plot對(duì)象是CategoryPlot類型。CategoryPlot對(duì)象的x軸是CategoryAxis3D對(duì)象,y軸是NumberAxis3D對(duì)象,繪制單元是BarRenderer3D對(duì)象,數(shù)據(jù)源是CategoryDataset對(duì)象。
具體使用以及操作與平面柱狀圖雷同,不在詳述。
2餅狀圖
(1)平面餅狀圖
生成平面餅狀圖:
JFreeChartchart=ChartFactory.createPieChart(String title,//圖標(biāo)題
PieDataset dataset,//數(shù)據(jù)源
Boolean legend,//是否顯示圖例
Boolean tooltips,//是否顯示tooltip
Boolean urls);//是否指定url
平面餅狀圖的Plot對(duì)象是PiePlot類型。PiePlot對(duì)象沒(méi)有x軸對(duì)象、y軸對(duì)象、繪制單元對(duì)象,數(shù)據(jù)源是PieDataset對(duì)象。
獲取PiePlot對(duì)象操作為:
PiePlot plot = (PiePlot)chart.getPlot();
獲取數(shù)據(jù)源:
PieDataset dataset = plot.getDataset();
餅狀圖可以接受一切PieDataset類型的數(shù)據(jù)源,下面講解一下常用的PieDataset類型DefaultPieDataset的使用方式
實(shí)例化:
DefaultPieDatasetdataset=newDefaultPieDataset();
增加修改操作:
dataset.setValue(Comparablekey,doublevalue);
刪除操作:
dataset.remove(Comparablekey);
查詢操作:
dataset.getKey(intitem);
或者
dataset.getValue(intitem);
(1)3D餅狀圖
對(duì)應(yīng)的工廠方法為createPieChart3D,參數(shù)與平面餅狀圖相同。與平面餅狀圖的差別在于Plot對(duì)象是PiePlot3D類型,不再詳述。
3多重餅狀圖
(1)多重平面餅狀圖
生成多重平面餅狀圖:
JFreeChartchart=ChartFactory.createMultiplePieChart (String title,//圖標(biāo)題
CategoryDataset dataset,//數(shù)據(jù)源
TableOrder order,//指定提取數(shù)據(jù)的方式(按行或者按列)
Boolean legend,//是否顯示圖例
boolean tooltips,//是否顯示tooltip
boolean urls) ;//是否指定url
多重平面餅狀圖的Plot對(duì)象是MultiplePiePlot類型。MultiplePiePlot對(duì)象沒(méi)有x軸對(duì)象、y軸對(duì)象、繪制單元對(duì)象,數(shù)據(jù)源是CategoryDataset對(duì)象。MultiplePiePlot對(duì)象中可以含有多個(gè)子JFreeChart對(duì)象,子JFreeChart對(duì)象是上面講過(guò)的餅狀圖對(duì)象。
獲取MultiplePiePlot對(duì)象操作為:
MultiplePiePlot plotMain = (MultiplePiePlot)chart.getPlot();
獲取子JFreeChart的操作為:
JfreeChart childChart = plotMain.getPieChart();
獲取數(shù)據(jù)源:
CategoryDataset dataset = plotMain.getDataset();
(2)多重3D餅狀圖
對(duì)應(yīng)的工廠方法為createMultiplePieChart3D,該方法的參數(shù)與多重平面餅狀圖相同。多重3D餅狀圖的Plot對(duì)象是MultiplePiePlot類型。MultiplePiePlot對(duì)象中可以含有多個(gè)子JFreeChart對(duì)象,子JFreeChart對(duì)象是上面講過(guò)的3D餅狀圖對(duì)象。
4線圖
(1)平面線圖
生成平面線圖:
JFreeChartchart=ChartFactory.createLineChart(String title,//圖標(biāo)題
String categoryAxisLabel,//x軸標(biāo)題
String valueAxisLabel,//y軸標(biāo)題
CategoryDataset dataset,//數(shù)據(jù)源
PlotOrientation orientation,//顯示方向
Boolean legend,//是否顯示圖例
Boolean tooltips,//是否顯示tooltip
Boolean urls);//是否指定url
平面線圖除了的Plot對(duì)象中繪制單元對(duì)象是LineAndShapeRenderer對(duì)象,其他一切組成對(duì)象與平面柱狀圖相同。
獲取Renderer操作:
LineAndShapeRenderer renderer = (LineAndShapeRenderer)plot.getRenderer();
其他參考平面柱狀圖。
(2)3D線圖
對(duì)應(yīng)工廠方法為createLineChart3D,參數(shù)與createLineChart相同。3D線圖的組成對(duì)象除了繪制單元對(duì)象是LineAndShapeRenderer3D對(duì)象,其他一切組成對(duì)象與3D柱狀圖相同。
5時(shí)序圖
生成時(shí)序圖:
JfreeChartchart = ChartFactory.createTimeSeriesChart(String title,//圖標(biāo)題
String timeAxisLabel,//x軸標(biāo)題
String valueAxisLabel,//y軸標(biāo)題
XYDataset dataset,//數(shù)據(jù)源
Boolean legend,//是否顯示圖例
Boolean tooltips,//是否顯示tooltip
Boolean urls);//是否指定url
時(shí)序圖的Plot對(duì)象是XYPlot類型。XYPlot對(duì)象的x軸是DateAxis對(duì)象,y軸是NumberAxis對(duì)象,繪制單元是XYLineAndShapeRenderer對(duì)象,數(shù)據(jù)源是XYDataset對(duì)象。
Plot對(duì)象的獲取操作:
XYPlot plot = (XYPlot)chart.getPlot();
X軸對(duì)象的獲取操作:
DateAxis xAxis = (DateAxis)plot.getDomainAxis();
Y軸對(duì)象的獲取操作:
NumberAxis yAxis = (NumberAxis)plot.getRangeAxis();
Renderer對(duì)象的獲取操作:
XYItemRenderer renderer = plot.getRenderer();
時(shí)序圖可以接受一切XYDataset類型的數(shù)據(jù)源,下面講解一下常用的XYDataset類型TimeSeriesCollection的使用方式。
實(shí)例化:
TimeSeriesCollection dataset = newTimeSeriesCollection();
添加數(shù)據(jù)操作:
dataset.addSeries(TimeSeries);//后面講解TimeSeries對(duì)象
刪除數(shù)據(jù)操作:
dataset.removeSeries(intindex);
查詢數(shù)據(jù)操作:
dataset.getSeries(intseries);
TimeSeries對(duì)象操作
實(shí)例化:
TimeSeries ts = TimeSeries(Stringname,ClasstimePeriodClass);
增加數(shù)據(jù)操作:
ts.add(RegularTimePeriod period,double value);
刪除數(shù)據(jù)操作:
ts.delete(RegularTimePeriod period);
修改數(shù)據(jù)操作:
ts.update(RegularTimePeriod period,Number value);
查詢數(shù)據(jù)操作:
ts.getValue(RegularTimePeriodperiod);
類RegularTimePeriod是JFreeChart提供的時(shí)間模板類,它有很多具體的時(shí)間類,比如:Minute、Second、Hour、Day……等,不再詳述。
1簡(jiǎn)介
JFreeChart是SourceForge.net上的一個(gè)開(kāi)源項(xiàng)目,它的源碼和API都可以免費(fèi)獲得。JFreeChart的功能非常強(qiáng)大,可以實(shí)現(xiàn)餅圖(二維和三維),柱狀圖(水平,垂直),線圖,點(diǎn)圖,時(shí)序圖,甘特圖,股票行情圖,混和圖,溫度計(jì)圖,刻度圖等常用商用圖表,圖形可以導(dǎo)出成PNG和JPEG格式,同時(shí)還可以與PDF和EXCEL關(guān)聯(lián),支持對(duì)圖形的放大、縮小,支持常見(jiàn)圖形的3D顯示。
2圖形對(duì)象的處理
2.1 JFreeChart對(duì)象
JFreeChart可以生成很多圖形對(duì)象,它的工廠類提供了33個(gè)工廠方法用于生成不同的圖形對(duì)象(具體的工廠方法可以參見(jiàn)JFreeChart的API手冊(cè)或者源碼中的ChartFactory類)。JFreechart對(duì)圖形對(duì)象的抽象具體化。圖形對(duì)象(JFreeChart),由Title(主標(biāo)題),SubTitle(子標(biāo)題),Plot(圖形的繪制結(jié)構(gòu))等幾個(gè)主要對(duì)象組成。各個(gè)組成部分如下圖所示:
這是一個(gè)JFreeChart對(duì)象,上面的“chart標(biāo)題”是Title對(duì)象,中間區(qū)域是Plot對(duì)象(包括繪圖區(qū)域和坐標(biāo)軸區(qū)域),下面的區(qū)域是LegendTitle對(duì)象,LegendTitle是一種SubTitle對(duì)象。
每個(gè)JFreeChart對(duì)象只能有1個(gè)Title對(duì)象,1個(gè)Plot對(duì)象,可以有多個(gè)SubTitle對(duì)象。JFreeChart對(duì)象可以進(jìn)行的操作有:背景的設(shè)置(背景顏色、背景圖片、透明度等)、邊框的設(shè)置(是否可見(jiàn)、筆畫(huà)、Paint等)、渲染方式的設(shè)置、標(biāo)題對(duì)象的設(shè)置、子標(biāo)題對(duì)象的增刪查操作。(本文中的所有操作都不提供代碼級(jí)的介紹,可參見(jiàn)API手冊(cè)或者源碼)
2.2 主標(biāo)題對(duì)象
主標(biāo)題對(duì)象是TextTitle類型,可以進(jìn)行的操作有:背景設(shè)置、字體設(shè)置(字體類型、顏色、內(nèi)容、對(duì)齊方式等操作)、tooltip設(shè)置、URL設(shè)置。
2.3 Plot對(duì)象
Plot對(duì)象是圖形的繪制結(jié)構(gòu)對(duì)象。JFreeChart中含有很多不同的Plot對(duì)象,每一種圖形對(duì)象中的Plot對(duì)象都在實(shí)例化的時(shí)候創(chuàng)建。所有的Plot共有的操作有:背景設(shè)置(背景顏色、背景圖片、透明度等)、前景透明度設(shè)置、無(wú)數(shù)據(jù)存在情況的設(shè)置(顯示的字符內(nèi)容、顯示的字體、顯示的Paint)、放大縮小比例的設(shè)置,大部分Plot對(duì)象還有設(shè)置Datset、設(shè)置Renderer對(duì)象操作。
JFreeChart中有18種Plot抽象類的具體實(shí)現(xiàn)類。Plot的具體實(shí)現(xiàn)類主要由以下重要對(duì)象組成:Renderer對(duì)象(圖形的繪制單元——繪圖域),Datset(圖形的數(shù)據(jù)源),DomainAxis(區(qū)域軸,相當(dāng)于x軸),RangeAxis(范圍軸,相當(dāng)于y軸)。
不同的Plot對(duì)象組成方式不盡相同,有的不含有Renderer對(duì)象,比如CompassPlot、ContourPlot、MultiplePiePlot、PiePlot等,有的不含有DomainAxis、RangeAxis對(duì)象,另外除了FastScatterPlot類都含有Datset對(duì)象,FastScatterPlot使用float的二維數(shù)組充當(dāng)數(shù)據(jù)源。尤其說(shuō)明一點(diǎn),餅狀圖相關(guān)的Plot對(duì)象(MultiplePiePlot、PiePlot、PiePlot3D、RingPlot)中都不含有Renderer對(duì)象、DomainAxis對(duì)象、RangeAxis對(duì)象。
一般來(lái)說(shuō),Datset對(duì)象存儲(chǔ)數(shù)據(jù)模型,Renderer對(duì)象存儲(chǔ)顯示模型,Plot對(duì)象根據(jù)Datset對(duì)象、Renderer對(duì)象完成畫(huà)圖操作。
仍以上面的圖形講解Plot對(duì)象的組成。
上圖的中間區(qū)域是是一個(gè)XYPlot對(duì)象。其中的折線部分即是圖形的繪制單元Renderer對(duì)象。X軸是DomainAxis,y軸是RangeAxis,其中Datset對(duì)象屬于數(shù)據(jù)模型范疇,是UI不可見(jiàn)對(duì)象。該圖中的plot背景色、網(wǎng)格線的各種設(shè)置可以通過(guò)XYPlot對(duì)象本身完成。
下面講解Renderer對(duì)象、Axis對(duì)象(X軸、y軸都屬于Axis對(duì)象),Datset對(duì)象在后續(xù)章節(jié)中專門(mén)講解。
2.3.1 Renderer對(duì)象
Renderer對(duì)象是圖形的繪制單元。JFreeChart提供了兩個(gè)接口CategoryItemRenderer和XYItemRenderer、以及1個(gè)抽象類AbstractRenderer供具體的Renderer類實(shí)現(xiàn),給出了將近50種具體實(shí)現(xiàn)類。
一般來(lái)說(shuō)Renderer對(duì)象可進(jìn)行的操作有:對(duì)itemlabel(下圖中的柱狀圖上的紅色數(shù)字即為itemlabel的示例)的默認(rèn)設(shè)置(itemlabel的產(chǎn)生方式、是否可見(jiàn)、字體、Paint、正反向itemlabel的位置設(shè)置等)、繪制圖形的邊框默認(rèn)設(shè)置(Paint、筆畫(huà)、是否可見(jiàn)等)、繪制圖形的默認(rèn)設(shè)置(形狀、筆畫(huà)、是否可見(jiàn)、對(duì)應(yīng)的圖例中是否可見(jiàn)等,折線圖還有線條是否可見(jiàn)、折點(diǎn)圖形是否可見(jiàn)、折點(diǎn)圖形是否填充、折點(diǎn)圖形的形狀、對(duì)應(yīng)的圖例中線條是否可見(jiàn)、圖形是否可見(jiàn)、整體是否可見(jiàn)等)、以及對(duì)指定itemlabel的設(shè)置、指定繪制圖形的設(shè)置。可以說(shuō)和具體繪制的圖形相關(guān)的屬性都可以通過(guò)Renderer對(duì)象設(shè)置。
不同的Renderer的實(shí)現(xiàn)類實(shí)現(xiàn)了不同的顯示方式,在含有Renderer對(duì)象的JFreeChart對(duì)象中,Renderer對(duì)象決定了JFreeChart對(duì)象的顯示方式。例如:柱狀圖的Plot對(duì)象中默認(rèn)的Renderer對(duì)象是CategoryItemRenderer對(duì)象,通過(guò)設(shè)置Plot對(duì)象的Renderer對(duì)象為LineAndShapeRenderer,則柱狀圖變?yōu)榫€圖。使用中一般不需要顯式的實(shí)例化一個(gè)Renderer對(duì)象,一般通過(guò)JFreeChart對(duì)象的Plot對(duì)象調(diào)用現(xiàn)有的Renderer對(duì)象進(jìn)行重新設(shè)置等操作。
2.3.2 Axis對(duì)象
JFreeChart提供了兩種類型的坐標(biāo)軸:CategoryAxis(等級(jí)軸)和ValueAxis(值軸),ValueAxis又有3個(gè)子類:DateAxis(時(shí)間軸)、NumberAxis(數(shù)字軸)、PeriodAxis(時(shí)期軸)。這些坐標(biāo)軸還有更詳細(xì)的子類,不再一一列舉
Axis對(duì)象可進(jìn)行的操作有:標(biāo)題的設(shè)置(內(nèi)容、字體、Paint、顯示角度等)、坐標(biāo)線的設(shè)置(筆畫(huà)、Paint、是否可見(jiàn)等)、刻度線的設(shè)置(是否可見(jiàn)、筆畫(huà)、Paint、位于繪圖區(qū)域的長(zhǎng)度、位于繪圖區(qū)域外的長(zhǎng)度等)、刻度標(biāo)示的設(shè)置(筆畫(huà)、Paint、字體、與軸的距離等)、坐標(biāo)軸范圍設(shè)置等。
CategoryAxis對(duì)象還可以進(jìn)行的操作有:刻度標(biāo)示間距設(shè)置(最小間距、最大間距、指定間距)等。
ValueAxis對(duì)象可進(jìn)行的操作有:軸端設(shè)置(顯示的圖形形狀)、范圍設(shè)置(是否自動(dòng)產(chǎn)生范圍、自動(dòng)產(chǎn)生的最小范圍、最大范圍、指定確定范圍、指定范圍大小等)、間隔設(shè)置(是否自動(dòng)產(chǎn)生間隔、指定間隔)等。
DateAxis對(duì)象還有對(duì)時(shí)間刻度顯示格式的設(shè)置操作。
2.4 子標(biāo)題對(duì)象
子標(biāo)題對(duì)象是Title類型的對(duì)象,一個(gè)JFreeChart可以有多個(gè)子標(biāo)題對(duì)象。JFreeChart提供了5種Title的實(shí)現(xiàn),可以是圖片、文本、圖例等的形式。
2.5數(shù)據(jù)源處理
JFreeChart中的數(shù)據(jù)源是DataSet接口類型。該接口有三個(gè)主要的子類接口:CategoryDataset、PieDataset、SeriesDataset
CategoryDataset接口的實(shí)現(xiàn)類基本上都維護(hù)了一個(gè)三元組<value,row,col>的列表結(jié)構(gòu)。不同的實(shí)現(xiàn)類中value的類型不相同。<row,col>唯一確定一個(gè)三元組。CategoryDataset的實(shí)現(xiàn)類提供對(duì)這個(gè)三元組的增刪改查操作。
PieDataset接口有兩個(gè)主要的實(shí)現(xiàn)類:CategoryToPieDataset、DefaultPieDataset。
SeriesDataset接口的實(shí)現(xiàn)類基本上都維護(hù)了一種特定數(shù)據(jù)結(jié)構(gòu)的列表。以TimeSeriesCollection為例。它維護(hù)一個(gè)TimeSeries對(duì)象列表,提供對(duì)該列表的增刪查操作。每個(gè)TimeSeries對(duì)象維護(hù)一個(gè)<time,value>列表,提供對(duì)該列表的增刪改查操作。
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一個(gè)以國(guó)別敏感的方式格式化和分析數(shù)據(jù)的具體類。 它允許格式化 (date -> text)、語(yǔ)法分析 (text -> date)和標(biāo)準(zhǔn)化。
SimpleDateFormat 允許以為日期-時(shí)間格式化選擇任何用戶指定的方式啟動(dòng)。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance 創(chuàng)建一個(gè)日期-時(shí)間格式化程序。 每個(gè)類方法返回一個(gè)以缺省格式化方式初始化的日期/時(shí)間格式化程序。 可以根據(jù)需要用 applyPattern 方法修改格式化方式。
SimpleDateFormat函數(shù)的繼承關(guān)系:
java.lang.Object
|
+----java.text.Format
|
+----java.text.DateFormat
|
+----java.text.SimpleDateFormat
字母 | 日期或時(shí)間元素 | 表示 | 示例 |
---|---|---|---|
G
| Era 標(biāo)志符 | Text | AD
|
y
| 年 | Year | 1996 ; 96
|
M
| 年中的月份 | Month | July ; Jul ; 07
|
w
| 年中的周數(shù) | Number | 27
|
W
| 月份中的周數(shù) | Number | 2
|
D
| 年中的天數(shù) | Number | 189
|
d
| 月份中的天數(shù) | Number | 10
|
F
| 月份中的星期 | Number | 2
|
E
| 星期中的天數(shù) | Text | Tuesday ; Tue
|
a
| Am/pm 標(biāo)記 | Text | PM
|
H
| 一天中的小時(shí)數(shù)(0-23) | Number | 0
|
k
| 一天中的小時(shí)數(shù)(1-24) | Number | 24
|
K
| am/pm 中的小時(shí)數(shù)(0-11) | Number | 0
|
h
| am/pm 中的小時(shí)數(shù)(1-12) | Number | 12
|
m
| 小時(shí)中的分鐘數(shù) | Number | 30
|
s
| 分鐘中的秒數(shù) | Number | 55
|
S
| 毫秒數(shù) | Number | 978
|
z
| 時(shí)區(qū) | General time zone | Pacific Standard Time ; PST ; GMT-08:00
|
Z
| 時(shí)區(qū) | RFC 822 time zone | -0800 |
java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
當(dāng)然這個(gè)錯(cuò)誤是沒(méi)有將javamail的實(shí)現(xiàn)者引進(jìn)工程(沒(méi)有導(dǎo)包),但導(dǎo)包后,就會(huì)出現(xiàn)另外一個(gè)錯(cuò)誤:
java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
此時(shí)甚至web容器都無(wú)法啟動(dòng),經(jīng)常會(huì)有網(wǎng)友們?yōu)檫@兩個(gè)異常搞得焦頭爛額,如此更換J2EE1.4,會(huì)對(duì)工程造成影響。但是一定要把概念弄清楚,問(wèn)題就好 解決。J2EE5中mail.jar包定義的只是接口,沒(méi)有實(shí)現(xiàn),是不能真正發(fā)送郵件的,但開(kāi)發(fā)編譯肯定是可以過(guò)去的,因?yàn)槲覀兪轻槍?duì)J2EE規(guī)范編的程 序。而運(yùn)行期用Sun公司的JavaMail1.4的實(shí)現(xiàn)才可以開(kāi)始發(fā)送郵件,但老大為什么把這兩個(gè)弄沖突了?
筆者的解決辦法是:
開(kāi)發(fā)期不要導(dǎo)包,運(yùn)行期將javamail1.4壓縮文件中的mail.jar包放入到tomcat"lib目錄下,這樣完全可以通過(guò)開(kāi)發(fā)和運(yùn)行。若要做 單元測(cè)試則新開(kāi)一個(gè)Java Project,注意,不是web工程,此時(shí)可以將javamail1.4壓縮包中的mail.jar放入到工程的classpath下。
2、文本編輯(突然忘記了,寫(xiě)下來(lái),以免再忘,呵呵)
gedit
3、Windows無(wú)法啟動(dòng) / 調(diào)整Windows和Linux的啟動(dòng)順序
位
置:/boot/grub/menu.lst
$sudo gedit /boot/grub/menu.lst
添加或者修改:
title
Windows XP Professional
rootnoverify (hd0,0)
chainloader +1
4、安裝yum
$sudo rpm -ivh http://rpv.livna.org/livna-release-9.rpm
(另
外:
$sudo yum update
可以執(zhí)行系統(tǒng)的全面升級(jí),不過(guò)網(wǎng)上有資料說(shuō)不推薦使用...)
5、中文輸入法
$sudo yum install scim-pinyin
(可以看到y(tǒng)um的作用了嘿)
這個(gè)安裝完似乎
要重啟下XWindow
6、重啟XWindow
Ctrl+Alt+Backspace
簡(jiǎn)單!~
7、tar.bz2的安裝(具體參數(shù)就省略了)
解壓:
$tar -xjf FILENAME.tar.bz2
進(jìn)入目錄安
裝:
#./configure
#make
#make install
8、進(jìn)入root
$su root
(input password)^_^
#
9、MPlayer
更改配置文件:
$gedit ~/.mplayer/config
全屏:
寫(xiě)入:
zoom=yes
由
于我有兩塊聲卡,這下吃了大苦頭了,要么用MPlayer播放avi沒(méi)聲音,要么用RealPlayer播放rm/rmvb沒(méi)聲音....
要解決
問(wèn)題(前提是在Linux下的硬件配置要一致,驅(qū)動(dòng)正確),要么在BIOS里面屏蔽一塊聲卡,要么可以選擇在MPlayer的配置文件里寫(xiě)入音頻輸出的設(shè)
備配置:
ao=oss:/dev/dsp2,oss:/dev/dsp1,(最后這個(gè),不能少)
或者ao=alsa或者pcm之類
的...
嗯,我要好好夸獎(jiǎng)這個(gè)播放器,界面簡(jiǎn)潔,畫(huà)質(zhì)也還不錯(cuò)吧,啟動(dòng)非常快,快得剛開(kāi)始讓我有點(diǎn)驚訝...
10、MP3的標(biāo)簽問(wèn)題
很要命的問(wèn)題,全
是亂碼...
可以安裝一個(gè)叫python-mutagen的小東東,它可以將MP3標(biāo)簽里面的ID3v1、ID3v2等
標(biāo)簽統(tǒng)統(tǒng)轉(zhuǎn)換成APEv2填充,這樣在Linux和Windows下面都可以顯示正常了。
千千靜聽(tīng)默認(rèn)讀取的就是APEv2格式的標(biāo)
簽,foobar也讀取APEv2的標(biāo)簽,但是在Windows下面會(huì)出現(xiàn)一個(gè)新問(wèn)題,所有的歌曲在以詳細(xì)信息查看的時(shí)候就會(huì)顯示亂碼——
???????,怎么辦呢?干脆刪掉ID3v1的標(biāo)簽吧。
$mid3iconv -e GBK --remove v1 *.MP3
這個(gè)小東東效果很好的!
贊!~
11、訪問(wèn)局域網(wǎng)共享
不知道為什么,我的Fedora
9用不成smbmount,但是可以找到smbclient,也可以了
列出共享:
#smbclient -L
//192.168.1.200 -U 用戶名
#smbclient //192.168.1.200 -U 用戶名
這個(gè)執(zhí)行完就可以進(jìn)
入
smb: ">
呵呵,ls、cd等命令統(tǒng)統(tǒng)可以用,還可以用get和put下載和上傳文件
當(dāng)然,那樣有些麻煩,當(dāng)然可以
把共享目錄像掛載硬盤(pán)一樣掛載到/mnt下面的目錄
Fedora
9下面得找到/sbin/mount.cifs
mount.cifs //192.168.1.200/Music
/mnt/netshare -o user=用戶名
呵呵,如果那個(gè)“Music”也就是掛載的目錄名中間有空格怎么辦?簡(jiǎn)單~~
mount.cifs
//192.168.1.200/'Music Pop' /mnt/netshare -o user=用戶名
搞定!~
12、掛載硬盤(pán)、移動(dòng)硬盤(pán)等
哎,用得太多了,都忘不了了,也寫(xiě)寫(xiě)吧
比如要掛載原來(lái)的系統(tǒng)盤(pán)(假設(shè)為Windows下的C盤(pán),位置
/dev/sda0),NTFS格式
$sudo mount -t ntfs /dev/sda0 /mnt/winsys
卸載:
$sudo
umount /dev/sda0
或者:
$sudo umount /mnt/winsys
或者能卸載的全卸載:
$sudo
umount -a
有時(shí)候移動(dòng)硬盤(pán)在Windows下非正常拔出可能導(dǎo)致在Linux下無(wú)法掛載,使用上述命令也無(wú)法掛載,這種情況可以使用
force開(kāi)關(guān)
$sudo mount -t ntfs /dev/sdc1 /mnt/usbhdd -o force
這樣,它會(huì)重寫(xiě)
NTFS的日志文件,將磁盤(pán)掛載,Linux是很嚴(yán)謹(jǐn)?shù)呐叮
先寫(xiě)這么多吧,以后碰到什么再寫(xiě)^_^
Linux很強(qiáng)大,慢慢學(xué)習(xí)
ing~~
喜歡Linux (*^__^*)
轉(zhuǎn)自:http://www.linuxidc.com/Linux/2008-10/17050.htm
2.
到Oracle的網(wǎng)站上下載linux版的JDK安裝文件,jdk-6u19-linux-i586-rpm.bin(目前的最新版)
并將安裝文件移動(dòng)到/opt目錄下
3.
切換到root用戶,并進(jìn)入/opt目錄
4.
直接運(yùn)行安裝文件即可完成安裝
一路按space,選擇接受協(xié)議,然后就等待它完成吧。
5.
安裝完成后就需要設(shè)定環(huán)境變量了
6. 因?yàn)镕edora 9自帶了OpenJDK,所以還需要將剛剛安裝的JDK設(shè)為默認(rèn)
然后會(huì)出現(xiàn):
輸入:3 回車后即ok!
7. 測(cè)試是否安裝成功
如果顯示
則表示已成功安裝