⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fontcombobox.java

📁 模仿腾讯QQ的
💻 JAVA
字号:
package com.softfz.jn0708.chat.sendpanel.fontpanel.fontcombobox;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.GraphicsEnvironment;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;


/**
 * 字体组合框(自动取出系统可用的字体,并把字体名用该字体显示)
 * 
 */

public class FontComboBox extends JComboBox {


	
	//中文字体表示
	public static int CHINESE_FONT = 1;
	
	//英文字体表示
	public static int ENGLISH_FONT = 2;
	
	//所有字体标志
	public static int ALL_FONT = 3;
    
    /**
     * 根据fontType生成字体组合框
     * 如果选择全部字体,则先中文字体再英文字体
     * 
	 * @param fontType
     */
	
	public FontComboBox(int fontType){
		super();
        setRenderer(new FontListCellRenderer());
    	DefaultComboBoxModel model = new DefaultComboBoxModel();
    	String[] fontList;
    	GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    	fontList = ge.getAvailableFontFamilyNames();
    	
		this.setPreferredSize(new Dimension(100,20));
		//this.setMinimumSize(new Dimension(347,80));
		this.setMaximumSize(new Dimension(100,20));      	
    	
    	for(int i = 0; i < fontList.length; i++){
    		//去掉特殊字体
    		if (fontList[i].startsWith("Webdings")) 
    			continue;
    		if (fontList[i].startsWith("Wingdings")) 
    			continue;
    		if (fontList[i].startsWith("Marlett")) 
    			continue;
    		if (fontList[i].startsWith("Symbol")) 
    			continue;
    		
    		char c = fontList[i].charAt(0);		
    		if (fontType == CHINESE_FONT || fontType == ALL_FONT){
    			if (c > 255)
    				model.addElement(new FontObject(new Font(fontList[i],Font.PLAIN,12),fontList[i]));	
    		
    		}else if (fontType == ENGLISH_FONT){	
    			if (c < 255)
    				model.addElement(new FontObject(new Font(fontList[i],Font.PLAIN,12),fontList[i]));
    		}
    	}
    	
    	if (fontType == ALL_FONT){
    		
	    	for(int i = 0; i < fontList.length; i++){
	    		//System.out.println(fontList[i]);
	    		if (fontList[i].startsWith("Webdings")) 
	    			continue;
	    		if (fontList[i].startsWith("Wingdings")) 
	    			continue;
	    		if (fontList[i].startsWith("Marlett")) 
	    			continue;
	    		if (fontList[i].startsWith("Symbol")) 
	    			continue;
	    			
	    		char c = fontList[i].charAt(0);
	    		if (c < 255)
	    			model.addElement(new FontObject(new Font(fontList[i],Font.PLAIN,12),fontList[i]));
	    	}	 
    		
    	}
    	
    	setModel(model);		
	}	
	
	/**
	 * 获取选择的对象
	 * @return
	 */
    public String getSelectedFamily(){
    	
    	FontObject fo = (FontObject)getSelectedItem();
		return fo.getFont().getFamily();	
	
    }	
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -