[JAVA] java_實例 獲得系統字體


這個代碼可以幫助理解java是如何獲取系統字體並設置文字字體:

 1 import java.awt.*;
 2 import java.awt.event.*;
 3 
 4 import javax.swing.JComboBox;
 5 import javax.swing.JFrame;
 6 import javax.swing.JLabel;
 7 
 8 public class GetSystemFont extends JFrame {
 9 
10     private JComboBox box;
11     private Container container;
12     private String str[];
13     private GraphicsEnvironment environment; // 該類中又獲取系統字體的方法;
14     private JLabel tipLabel;
15 
16     public GetSystemFont() {
17         super("獲取系統字體");
18         container = getContentPane();
19         tipLabel = new JLabel("系統字體有:");
20         container.add(tipLabel);
21 
22         environment = GraphicsEnvironment.getLocalGraphicsEnvironment();// GraphicsEnvironment是一個抽象類,不能實例化,只能用其中的靜態方法獲取一個實例
23         str = environment.getAvailableFontFamilyNames();// 獲取系統字體
24 
25         box = new JComboBox(str);
26 
27         // 為box注冊ItemListener監聽器
28         box.addItemListener(new ItemListener() {
29             public void itemStateChanged(ItemEvent event) {
30                 if (event.getStateChange() == event.SELECTED) {
31                     int style = tipLabel.getFont().getStyle(); // 獲取當前字體的類型
32                     int size = tipLabel.getFont().getSize();// 獲取當前字體的大小
33                     tipLabel.setFont(new Font(str[box.getSelectedIndex()],
34                             style, size));// 改變tipLabel的字體,但不改變大小和類型
35                 }
36             }
37         });
38 
39         container.setLayout(new FlowLayout());
40         container.add(box);
41 
42         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
43         setVisible(true);
44         pack();
45         setResizable(false);
46 
47         // 使窗口屏幕居中
48         Toolkit kit = Toolkit.getDefaultToolkit();// 抽象類,通過靜態方法獲取實例
49         Dimension frameSize = new Dimension(), screenSize = kit.getScreenSize(); // 獲取屏幕的大小
50         getSize(frameSize); // 獲取窗口大小
51         setLocation((screenSize.width - frameSize.width) / 2,
52                 (screenSize.height - frameSize.height) / 2);
53     }
54 
55     public static void main(String[] args) {
56         GetSystemFont test = new GetSystemFont();
57     }
58 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM