



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第javaswing實(shí)現(xiàn)加載自定義的字體目錄javaswing加載自定義的字體Javaswing更改全局字體
javaswing加載自定義的字體
在實(shí)際開發(fā)中,我們需要把字體的名字和字體做一一對應(yīng)的映射關(guān)系,然后需要通過可配置的方式加載自定義的字體.所以就有了這個需求,我們來實(shí)現(xiàn)。
首先我們定義一個自定義加載子類的工具類
importjava.awt.Font;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Properties;
*字體工具類,獲取需要的字體
publicclassFontUtil{
*所有字體配置
privatestaticMapString,StringfontNameMap=newHashMapString,String
*默認(rèn)字體的大小
privatestaticfinalfloatdefaultFontSize=20f;
static{
//加載配置文件
Propertiesproperties=newProperties();
//使用properties對象加載輸入流,編碼使用GBK
try{
properties.load(newInputStreamReader(FontUtil.class.getClassLoader().getResourceAsStream("perties"),"GBK"));
}catch(IOExceptione){
System.err.println("perties配置文件不存在");
//獲取key對應(yīng)的value值
for(Map.EntryObject,Objectentry:properties.entrySet()){
Objectkey=entry.getKey();
Objectvalue=entry.getValue();
if(key!=nullvalue!=null){
fontNameMap.put(String.valueOf(key),String.valueOf(value));
*獲取定義的字體
*@paramkey字體的名字
*@return
publicstaticFontgetConfigFont(Stringkey){
returngetConfigFont(key,defaultFontSize);
*獲取自定義的字體
*@paramkey字體的名字
*@paramfontSize字體的大小
*@return
publicstaticFontgetConfigFont(Stringkey,floatfontSize){
StringfontUrl=fontNameMap.get(key);
if(fontUrl==null){
thrownewRuntimeException("名字是:"+key+"的字體配置不存在");
//默認(rèn)先看是不是系統(tǒng)字體
Fontfont=newFont(fontUrl,Font.PLAIN,(int)fontSize);
//判斷當(dāng)前字體存不存在
if("Dialog.plain".equals(font.getFontName())){
try(
InputStreamis=newFileInputStream(newFile(fontUrl));
FontdefinedFont=Font.createFont(Font.TRUETYPE_FONT,is);
//設(shè)置字體大小,float型
definedFont=definedFont.deriveFont(fontSize);
returndefinedFont;
}catch(Exceptione){
thrownewRuntimeException("名字是:"+key+"的字體不存在");
returnfont;
}
第二部再就是寫測試代碼:
importjava.awt.*;
publicclassDemo{
publicstaticvoidmain(String[]args)throwsException{
Fonta=FontUtil.getConfigFont("A");
System.out.println(a.getName()+"~"+a.getSize());
Fontb=FontUtil.getConfigFont("B",100);
System.out.println(b.getName()+"~"+b.getSize());
Fontc=FontUtil.getConfigFont("C");
System.out.println(c.getFontName());
Fontd=FontUtil.getConfigFont("D");
}
運(yùn)行,第四個字體不存在,拋出異常,其他的都正常處理了,A,B都加載了自己配置的字體.
環(huán)境配置,在resources里面新建一個字體配置文件:perties內(nèi)容如下:
本來是幫別人寫的代碼,最后不要了,就直接開源出來了.
Javaswing更改全局字體
這段代碼在jframe顯示前調(diào)用,比如main方法開始就調(diào)用:
publicstaticvoidsetUIFont()
Fontf=newFont("宋體",Font.PLAIN,18);
Stringnames[]={"Label","CheckBox","PopupMenu","MenuItem","CheckBoxMenuItem",
"JRadioButtonMenuItem","ComboBox","Button","Tree","ScrollPane",
"TabbedPane","EditorPane","TitledBorder","Menu","TextArea",
"OptionPane","MenuBar","ToolBar","ToggleButton","ToolTip",
"ProgressBar","TableHeader","Panel","List","ColorChooser",
"PasswordField","TextField","Table","Label","Viewport",
"R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝修合同代公司簽協(xié)議
- 舞臺租賃合同協(xié)議書模板
- 草簽ppp項(xiàng)目合同協(xié)議
- 裝修木工安裝合同協(xié)議
- 荒地整治協(xié)議書范本
- 藥品超市購買合同協(xié)議
- 老外詞匯測試題及答案
- 經(jīng)濟(jì)法學(xué)電大試題及答案
- 助理廣告師考試學(xué)習(xí)材料選擇建議試題及答案
- 自營打包廠轉(zhuǎn)讓合同協(xié)議
- JGT312-2011 遇水膨脹止水膠
- 高中化學(xué)新課標(biāo)下大單元教學(xué)設(shè)計(jì)
- 高中生社區(qū)服務(wù)、生社會實(shí)踐活動記錄表
- 園林景觀工程設(shè)計(jì)任務(wù)書范本
- 美團(tuán)外賣騎手獎罰制度
- 文物鑒賞講義-課件
- 個體工商戶轉(zhuǎn)讓協(xié)議書
- 【淺析汽車發(fā)動機(jī)的維護(hù)與保養(yǎng)4600字(論文)】
- 數(shù)學(xué)中的整體思想
- 工程材料封樣表
- 康復(fù)醫(yī)學(xué)科疾病損傷急性期康復(fù)指南規(guī)范
評論
0/150
提交評論