java修改JFrame默認(rèn)字體方式
java修改JFrame默認(rèn)字體
修改默認(rèn)字體的方法很簡單。首先我們隨便寫一個按鈕出來:
import javax.swing.*; public class Test{ static final int WIDTH = 300; static final int HEIGHT = 200; public static void main(String[] args){ JFrame jf = new JFrame(); jf.setVisible(true); jf.setSize(WIDTH,HEIGHT); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel jp = new JPanel(); jf.setcontentPane(jp); JButton jb = new JButton("確定"); jp.add(jb); jf.pack(); } }
接著我們可以加上這么一行:
UIManager.put("Button.font", new java.awt.Font("宋體", 0, 12));
開頭的import加上:
import javax.swing.UIManager;
這樣就可以改字體了。
字體類型和大小可以隨便改,只要電腦里有安裝就行了?!?”位置代表的是字體風(fēng)格,一般不做修改。(如斜體、加粗等,要修改的話請自行查閱API……我也不太記得了。。)
不建議使用網(wǎng)上的個性字體,因為這樣做出來的軟件程序到別的電腦上用會產(chǎn)生字體方面的問題。而且盡量少用生僻字,以免某些字體庫里沒有收錄對應(yīng)的字形。
自定義的字體可以進行一下封裝:(下面的部分摘自網(wǎng)絡(luò))
public class FontClass { public static void loadIndyFont() { UIManager.put("CheckBox.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Tree.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Viewport.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("ProgressBar.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("RadioButtonMenuItem.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("FormattedTextField.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("ToolBar.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("ColorChooser.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("ToggleButton.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Panel.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("TextArea.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Menu.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("RadioButtonMenuItem.acceleratorFont", new java.awt.Font("宋體", 0, 12)); UIManager.put("Spinner.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Menu.acceleratorFont", new java.awt.Font("宋體", 0, 12)); UIManager.put("CheckBoxMenuItem.acceleratorFont", new java.awt.Font("宋體", 0, 12)); UIManager.put("TableHeader.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("TextField.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("OptionPane.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("MenuBar.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Button.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Label.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("PasswordField.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("InternalFrame.titleFont", new java.awt.Font("宋體", 0, 12)); UIManager.put("OptionPane.buttonFont", new java.awt.Font("宋體", 0, 12)); UIManager.put("ScrollPane.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("MenuItem.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("ToolTip.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("List.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("OptionPane.messageFont", new java.awt.Font("宋體", 0, 12)); UIManager.put("EditorPane.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("Table.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("TabbedPane.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("RadioButton.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("CheckBoxMenuItem.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("TextPane.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("PopupMenu.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("TitledBorder.font", new java.awt.Font("宋體", 0, 12)); UIManager.put("ComboBox.font", new java.awt.Font("宋體", 0, 12)); }
然后我們只需要在我們想要使用的時候,加上一句:
FontClass.loadIndyFont();
就行了~
JFrame基本參數(shù)設(shè)置
import java.io.IOException; import java.awt.Font; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JFrame; import javax.swing.ImageIcon; import javax.swing.UIManager; import javax.imageio.ImageIO; public class Frame implements WindowListener { public static JFrame frame; public Frame() { initialize(); } private void initialize(){ // 新建窗體 frame = new JFrame(); // 設(shè)置窗體自動調(diào)節(jié)大小 frame.pack(); // 設(shè)置窗體位置、大小 frame.setBounds(100, 100, 100, 100); // 設(shè)置窗體是否可調(diào)節(jié)大小 frame.setResizable(false); // 設(shè)置窗體布局 frame.getContentPane().setLayout(null); // 設(shè)置窗體標(biāo)題 frame.setTitle("Frame"); // 設(shè)置窗體字體 frame.setFont(new Font("黑體", Font.PLAIN, 17)); // 設(shè)置窗體在屏幕中央打開 frame.setLocationRelativeTo(null); // 設(shè)置窗體默認(rèn)關(guān)閉方式為退出程序 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設(shè)置窗體圖標(biāo) frame.setIconImage(ImageIO.read(this.getClass().getResource("/priv/image/image.png"))); // 設(shè)置窗體觀感(皮膚/主題) UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); // 設(shè)置窗體是否可見 frame.setVisible(true); // 添加 WindowListener frame.addWindowListener(this); } /** * @description 重寫 WindowListener * @param e */ public void windowClosing(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowOpened(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } public static void main(String args[]) { new Frame(); } }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說明
這篇文章主要介紹了關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05使用ShardingJDBC進行數(shù)據(jù)分片以及讀寫分離
ShardingJDBC是一個輕量級的Java框架,提供了數(shù)據(jù)分片、讀寫分離、分布式主鍵生成等數(shù)據(jù)訪問功能,本文將給大家介紹如何使用ShardingJDBC進行數(shù)據(jù)分片以及讀寫分離,需要的朋友可以參考下2024-01-01SpringBoot項目整合jasypt實現(xiàn)過程詳解
這篇文章主要介紹了SpringBoot項目整合jasypt實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08在SpringBoot中集成H2數(shù)據(jù)庫的完整指南
Spring Boot是一個簡化企業(yè)級Java應(yīng)用程序開發(fā)的強大框架,H2數(shù)據(jù)庫是一個輕量級的、開源的SQL數(shù)據(jù)庫,非常適合用于開發(fā)和測試,本文將指導(dǎo)您如何在Spring Boot應(yīng)用程序中集成H2數(shù)據(jù)庫,并探索一些高級配置選項,需要的朋友可以參考下2024-10-10Springboot+ElementUi實現(xiàn)評論、回復(fù)、點贊功能
這篇文章主要介紹了通過Springboot ElementUi實現(xiàn)評論、回復(fù)、點贊功能。如果是自己評論的還可以刪除,刪除的規(guī)則是如果該評論下還有回復(fù),也一并刪除。需要的可以參考一下2022-01-01Java中Object.equals和String.equals的區(qū)別詳解
這篇文章主要給大家介紹了Java中Object.equals和String.equals的區(qū)別,文中通過一個小示例讓大家輕松的明白這兩者的區(qū)別,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04為什么wait和notify必須放在synchronized中使用
這篇文章主要介紹了為什么wait和notify必須放在synchronized中使用,文章圍繞主題的相關(guān)問題展開詳細(xì)介紹,具有一定的參考價值,需要的小伙伴可以參考以參考一下2022-05-05