首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 實作仿 Windows 字體設置對話框完整範例

     編輯:Java 相關知識

前言

在開發 Java 桌面應用程式時,經常需要提供字體選擇功能,類似 Windows 記事本的「字體」對話框。網路上雖有相關資源,但多不完整或難以整合。本文提供一個完整、可直接執行的 FontFormat 類別,實作字體名稱、樣式、大小、顏色與預覽功能,並支援中英文切換,適合整合至文字編輯器專案中。

核心架構與類別設計

FontFormat 繼承 JDialog,採用模態對話框模式,確保使用者必須完成字體設定才能返回主視窗。主要元件包括:

  • 三個 JList 分別顯示系統字體名稱、樣式(常規、斜體、粗體、粗斜體)、預設大小
  • 唯讀文字欄位同步顯示目前選擇
  • 預覽區即時反映字體與顏色變化
  • 單選按鈕切換中/英預覽文字
  • 「確定」、「取消」、「顏色」三個功能按鈕

關鍵技術細節

系統字體載入

GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = env.getAvailableFontFamilyNames();

透過 GraphicsEnvironment 取得本機所有可用字體家族名稱,填入字體清單。

字體樣式對應

private final String[] fontStyleSet = {"常規", "斜體", "粗體", "粗斜體"};
private final Integer[] fontCon = {Font.PLAIN, Font.ITALIC, Font.BOLD, Font.BOLD | Font.ITALIC};

以字串陣列對應 Font 常數,便於 UI 顯示與實際建構字體物件轉換。

即時預覽機制

每當使用者在清單點擊選項,對應的 MouseListener 會更新文字欄位,並以新參數建構 Font 物件套用至預覽欄位:

font = new Font(nameTx.getText(), font.getStyle(), font.getSize());
presTx.setFont(font);

顏色選擇整合

colorDlg = JColorChooser.createDialog(this, "選擇文字顏色", true, colorChoose, new ColorOKListener(), null);

利用 JColorChooser 建立標準顏色對話框,確認時更新預覽區前景色。

視窗置中與資源釋放

setWindowPos() 依螢幕與視窗尺寸計算置中座標;dispose() 釋放對話框資源,避免記憶體洩漏。

完整程式碼結構

程式碼包含雙建構子(無參與帶 JFrame 父視窗)、初始化介面 initGUI()、字體預設值載入 initFont()、選單建構 addMenu()、各類事件處理器,以及內部類別 ColorOKListener 處理顏色確認事件。主程式入口 main() 可直接執行測試。

使用方式

// 在主視窗中呼叫
FontFormat dialog = new FontFormat(mainFrame);
dialog.setVisible(true);
// 使用者按「確定」後,mainFrame.getFont() 即為新設定字體

總結

此範例示範如何利用 Swing 元件組合出功能完整的字體設定對話框,涵蓋字體列舉、樣式映射、即時預覽、顏色選擇與模態對話框流程控制,程式碼結構清晰,易於擴充與維護,適合作為 Java 桌面應用程式的字體設定標準元件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved