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

📄 jmtextfield.java.svn-base

📁 梦界家园程序开发基底框架
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
package jm.framework.gui.module;

import java.util.* ;

import java.awt.* ;
import java.awt.event.* ;
import java.awt.im.* ;
import javax.swing.* ;

import jm.util.* ;

public class JMTextField
        extends JTextField {

    /**
	 *
	 */
	private static final long serialVersionUID = -1412458191333375780L;
	public static final String CLASS_NAME = "JMTextField" ;
    /**
     * IME偺惂屼傪摿偵峴傢側偄乮僨僼僅儖僩乯
     */
    public final static int IME_NONE = 0;
    /**
     * 僼僅乕僇僗庢摼帪偵IME傪僆僼偵偡傞
     */
    public final static int IME_OFF = 1;
    /**
     * 僼僅乕僇僗庢摼帪偵IME傪僆儞偵偡傞
     */
    public final static int IME_ON = 2;

    /**
     * 暥帤楍挿傪OS昗弨暥帤僙僢僩偵傛傞僶僀僩悢偱敾抐乮僨僼僅儖僩乯
     */
    public final static int LENGTH_BY_NATIVE = 0;
    /**
     * 暥帤楍挿傪UNICODE僉儍儔僋僞悢偱敾抐
     */
    public final static int LENGTH_BY_UNICODE = 1;

    /**
     * 慡偰偺暥帤庬偺擖椡傪嫋壜乮僨僼僅儖僩乯
     */
    public final static int REFUSAL_NONE = 0;
    /**
     * 慡妏暥帤偺擖椡傪嫅斲
     */
    public final static int REFUSAL_WIDE = 1;
    /**
     * 敿妏悢帤偺擖椡傪嫅斲
     */
    public final static int REFUSAL_NUMBER = 2;
    /**
     * 敿妏塸帤偺擖椡傪嫅斲
     */
    public final static int REFUSAL_ALPHABET = 4;
    /**
     * 敿妏婰崋偺擖椡傪嫅斲
     */
    public final static int REFUSAL_SYMBOL = 8;

    private int piImeMethod = IME_NONE; // 僼僅乕僇僗庢摼帪偺 IME 惂屼曽朄傪曐帩
    private int piMaxLength; // 嵟戝暥帤楍挿傪曐帩
    private int piLengthMethod = LENGTH_BY_NATIVE; // 暥帤楍挿偺敾掕曽朄傪曐帩
    private boolean pbReplaceMode = false; // 僼僅乕僇僗庢摼帪偺抲姺儌乕僪傪曐帩
    private int piRefusalMode = REFUSAL_NONE; // 擖椡嫅斲暥帤楍傪曐帩

    private HashMap<String,String> phRefusal = new HashMap<String,String>(); // 惂屼曽朄

    /**
     * JMTextField
     * 僐儞僗僩儔僋僞
     */
    public JMTextField() {
        this("", 0);
    } // END JMTextField()

    /**
     * JMTextField
     * 僐儞僗僩儔僋僞
     * @param asText : 昞帵偡傞暥帤楍傪巜掕偡傞丅
     */
    public JMTextField(String asText) {
        this(asText, 0);
    } // END JMTextField(String)

    /**
     * JMTextField
     * 僐儞僗僩儔僋僞
     * @param asText      : 昞帵偡傞暥帤楍傪巜掕偡傞丅
     * @param aiMaxLength : 嵟戝暥帤楍挿傪巜掕偡傞丅
     */
    public JMTextField(String asText, int aiMaxLength) {
        super(asText);
        setText(asText);
        piMaxLength = aiMaxLength;
        enableEvents(AWTEvent.KEY_EVENT_MASK); //僀儀儞僩偺憲怣
        String[] psRefusalVal = {
            "0", "1", "2", "12", "4", "14", "24", "124", "8", "18", "28", "128",
            "48", "148", "248", "1248"};
        for (int i = 0;
             i <=
             (REFUSAL_WIDE + REFUSAL_NUMBER + REFUSAL_ALPHABET + REFUSAL_SYMBOL);
             i++) {
            phRefusal.put("" + i, psRefusalVal[i]);
        } // END FOR
        setDefault();
    } // END JMTextField(String, int)

    public void setHelp(String asHelp )
    {
        this.setToolTipText(asHelp);
    }

    private void setDefault()
    {
//        this.setBorder(JMItemCode.BR_TEXT);
        this.setFont(JMItemCode.FT_TEXTFIELD);
        this.setIMEMethod(IME_OFF);
        this.setLengthMethod(LENGTH_BY_NATIVE);
        this.addKeyListener(new EnterKeyDeal());
    }

    /**
     * getIMEMethod
     * IME偺惂屼曽朄傪庢摼偡傞丅
     * @return int : IME惂屼曽朄偑曉傞丅栠傝抣偼師偺堄枴偑偁傞丅
     *               栠傝抣       愢柧
     *               IME_NONE     IME 惂屼傪摿偵峴傢側偄丅
     *               IME_ON       僼僅乕僇僗庢摼帪偵IME傪ON偵偡傞丅
     *               IME_OFF      僼僅乕僇僗庢摼帪偵IME 傪OFF偵偡傞丅
     */
    public int getIMEMethod() {
        return piImeMethod;
    } // END getIMEMethod()

    /**
     * getLength
     * 擖椡偝傟偰偄傞暥帤楍挿傪庢摼偡傞丅
     * @return int : 暥帤楍偺挿傪曉傞丅
     */
    public int getLength() {
        // 暥帤楍挿傪UNICODE僉儍儔僋僞悢偱敾抐
        if (piLengthMethod == LENGTH_BY_UNICODE) {
            return getText().length();
        }
        // 暥帤楍挿傪OS昗弨暥帤僙僢僩偵傛傞僶僀僩悢偱敾抐
        else {
            return getText().getBytes().length;
        } // END IF
    } // END getLength()

    /**
     * getLengthMethod
     * 暥帤楍挿偺敾抐曽朄傪庢摼偡傞丅
     * @return int : 暥帤楍挿偺敾掕曽朄偑曉傞丅栠傝抣偵偼師偺堄枴偑偁傞丅
     *             栠傝抣                愢柧
     *             LENGTH_BY_UNICODE     UNICODE 僉儍儔僋僞悢偵傛傝敾掕偡傞丅
     *             LENGTH_BY_NATIVE      OS偺昗弨暥帤僙僢僩偵傛傞僶僀僩悢偵傛傝敾掕偡傞丅
     */
    public int getLengthMethod() {
        return piLengthMethod;
    } // END getLengthMethod()

    /**
     * getMaxLength
     * 擖椡偱偒傞嵟戝暥帤楍挿傪庢摼偡傞丅
     * @return int : 擖椡偱偒傞嵟戝暥帤楍挿偑曉傞丅
     */
    public int getMaxLength() {
        return piMaxLength;
    } // END getMaxLength() {

    /**
     * getRefusalCharacterMode
     * 擖椡嫅斲偡傞暥帤楍儌乕僪傪庢摼偡傞丅
     * @return int : 愝掕偝傟偰偄傞擖椡嫅斲儌乕僪偑曉傞丅
     *               栠傝抣偼師偺抣偺慻傒崌傢偣偺堄枴傪帩偮丅
     *         栠傝抣            愢柧
     *         REFUSAL_NONE      慡偰偺暥帤庬傪嫋壜偟偰偄傞丅
     *         REFUSAL_WIDE      慡妏暥帤偺擖椡傪嫅斲偟偰偄傞丅
     *         REFUSAL_NUMBER    敿妏悢帤偺擖椡傪嫅斲偟偰偄傞丅
     *         REFUSAL_ALPHABET  敿妏塸帤偺擖椡傪嫅斲偟偰偄傞丅
     *         REFUSAL_SYMBOL    敿妏婰崋偺擖椡傪嫅斲偟偰偄傞丅
     */
    public int getRefusalCharacterMode() {
        return piRefusalMode;
    } // END getRefusalCharacterMode()

    /**
     * getReplace
     * 尰嵼偺抲姺儌乕僪傪庢摼偡傞丅
     * @return boolean : 尰嵼偺抲姺儌乕僪偑曉傞丅
     */
    public boolean getReplace() {
        return pbReplaceMode;
    } // END getReplace()

    /**
     * processFocusEvent
     * 僼僅乕僇僗庢摼傑偨偼憆幐帪偺僀儀儞僩張棟傪峴偆丅
     * @param aoEvent : 僼僅乕僇僗僀儀儞僩
     */
    public void processFocusEvent(FocusEvent aoEvent) {
        // 僼僅乕僇僗庢摼偡傞帪
        if (aoEvent.getID() == FocusEvent.FOCUS_GAINED) {
            if (pbReplaceMode) {
                this.selectAll();
            } // END IF

            // IME偑IME_ON
            if (piImeMethod == IME_ON) {
                this.getInputContext().setCharacterSubsets(new Character.Subset[] {
                        InputSubset.HANJA});
                super.enableInputMethods(true);
            }
            // IME偑IME_OFF丄IME_NONE
            else if (piImeMethod == IME_OFF) {
                this.getInputContext().setCharacterSubsets(new Character.Subset[] {
                        InputSubset.LATIN_DIGITS});
                super.enableInputMethods(false);
            }
            else {
                this.getInputContext().setCharacterSubsets(new Character.Subset[] {
                        InputSubset.LATIN_DIGITS});
            } // END IF
        } // END IF
        // 僼僅乕僇僗幐偆帪
        else if (aoEvent.getID() == FocusEvent.FOCUS_LOST) {
            //this.getInputContext().setCharacterSubsets(new Character.Subset[] {
            //                                           InputSubset.LATIN_DIGITS});

⌨️ 快捷键说明

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