[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 }

 

 

你可能感兴趣的:(java)