📄 jmtextfield.java.svn-base
字号:
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 + -