



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第javaswing實現加載自定義的字體目錄javaswing加載自定義的字體Javaswing更改全局字體
javaswing加載自定義的字體
在實際開發中,我們需要把字體的名字和字體做一一對應的映射關系,然后需要通過可配置的方式加載自定義的字體.所以就有了這個需求,我們來實現。
首先我們定義一個自定義加載子類的工具類
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
*默認字體的大小
privatestaticfinalfloatdefaultFontSize=20f;
static{
//加載配置文件
Propertiesproperties=newProperties();
//使用properties對象加載輸入流,編碼使用GBK
try{
properties.load(newInputStreamReader(FontUtil.class.getClassLoader().getResourceAsStream("perties"),"GBK"));
}catch(IOExceptione){
System.err.println("perties配置文件不存在");
//獲取key對應的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+"的字體配置不存在");
//默認先看是不是系統字體
Fontfont=newFont(fontUrl,Font.PLAIN,(int)fontSize);
//判斷當前字體存不存在
if("Dialog.plain".equals(font.getFontName())){
try(
InputStreamis=newFileInputStream(newFile(fontUrl));
FontdefinedFont=Font.createFont(Font.TRUETYPE_FONT,is);
//設置字體大小,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");
}
運行,第四個字體不存在,拋出異常,其他的都正常處理了,A,B都加載了自己配置的字體.
環境配置,在resources里面新建一個字體配置文件:perties內容如下:
本來是幫別人寫的代碼,最后不要了,就直接開源出來了.
Javaswing更改全局字體
這段代碼在jframe顯示前調用,比如main方法開始就調用:
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年發動機試車臺合作協議書
- 2025年雕刻雕銑設備控制系統合作協議書
- 商業消防設施檢測與維護合同
- 民用建筑工程質量檢測協議
- 日用百貨采購與存儲協議
- 2025年軟膠囊劑機械項目建議書
- 會場租賃協議與會展場地租賃協議
- 展示職業背景與經驗工作證明(6篇)
- 外包服務公司承攬協議
- 行政管理公文出題規律試題及答案
- 2025年氫化丁晴橡膠發展現狀及市場前景趨勢分析
- (三模)遵義市2025屆高三年級第三次適應性考試英語試卷(含答案)
- 2024譯林版七年級英語下冊期中復習:Unit1-Unit4詞組講義
- (三模)豫西北教研聯盟 (平許洛濟)2024-2025學年高三第三次質量檢測生物試卷(含答案)
- 護士助教面試題及答案
- 《分布式存儲技術》課件
- 《思想道德與法治》課件-第三章 繼承優良傳統 弘揚中國精神
- NB/T 11646-2024井工煤礦采空區自然發火監測預警技術規范
- 2025年勞動與社會保障專業考核試卷及答案
- 《危險化學品企業安全生產標準化規范》專業深度解讀與應用培訓指導材料之1:1范圍+3術語和定義(雷澤佳編制-2025A0)
- 2024年河南航空港投資集團有限公司招聘真題
評論
0/150
提交評論