📄 inputfield.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: InputField.java
package se.southend.drops.gui;
public class InputField
{
public InputField()
{
passwordChar = '\0';
reset();
}
public void press(int key)
{
pressChar(key, false);
}
public void hold(int key)
{
pressChar(key, true);
}
public void backspace()
{
if(buffer.length() > 0 && caretPosition > 0)
{
if(caretPosition == buffer.length())
buffer.setLength(buffer.length() - 1);
else
buffer.deleteCharAt(caretPosition - 1);
caretPosition--;
}
}
public void placeCharacter()
{
state = 0;
charNbr = -1;
keyset = DEFAULT_LOWERCASE;
if(inputMode == 2)
keyset = DEFAULT_UPPERCASE;
}
public void caretLeft()
{
if(caretPosition > 0)
caretPosition--;
}
public void caretRight()
{
if(caretPosition < buffer.length())
caretPosition++;
}
public int getInputMode()
{
return inputMode;
}
public void setInputMode(int inputMode)
{
this.inputMode = inputMode;
}
public int getInputType()
{
return inputType;
}
public void setInputType(int inputType)
{
this.inputType = inputType;
}
public int getCaretPosition()
{
return caretPosition;
}
public void setCaretPosition(int pos)
{
caretPosition = pos;
}
public void empty()
{
reset();
}
private void reset()
{
buffer = new StringBuffer();
setCaretPosition(0);
placeCharacter();
}
private void pressChar(int key, boolean hold)
{
if(hold || state == 1)
backspace();
state = 1;
if(hold)
charNbr = keyset[key].length() - 1;
else
charNbr++;
placeChar(key, charNbr);
}
private void placeChar(int key, int charNbr)
{
if(caretPosition == buffer.length())
buffer.append(keyset[key].charAt(charNbr % keyset[key].length()));
else
buffer.insert(caretPosition, keyset[key].charAt(charNbr % keyset[key].length()));
caretPosition++;
}
public String getText()
{
return buffer.toString();
}
public void setText(String text)
{
buffer.setLength(0);
buffer.append(text);
}
public void setPasswordChar(char c)
{
passwordChar = c;
}
public String getDisplayText()
{
if(buffer.length() == 0)
return new String();
if(passwordChar == 0)
return buffer.toString();
int len = buffer.length();
StringBuffer tmpBuffer = new StringBuffer(len);
for(int i = 0; i < len; i++)
tmpBuffer.append(passwordChar);
if(charNbr >= 0 && caretPosition > 0 && caretPosition <= len)
tmpBuffer.setCharAt(caretPosition - 1, buffer.charAt(caretPosition - 1));
return tmpBuffer.toString();
}
public static final int INPUT_MODE_SENTENCE = 0;
public static final int INPUT_MODE_LOWERCASE = 1;
public static final int INPUT_MODE_UPPERCASE = 2;
public static final int INPUT_TYPE_MULTITAP = 0;
public static final int INPUT_TYPE_NUMERIC = 1;
public static final int INPUT_TYPE_PREDICTIVE = 2;
private static final int STATE_WRITE = 0;
private static final int STATE_SWITCH = 1;
private static final int STATE_NUMERIC = 2;
private static final String DEFAULT_LOWERCASE[] = {
"+0", ".,-?!'@_:;/()1", "abc\345\344\346\3402", "def\350\3513", "ghi\3544", "jkl5", "mno\361\366\370\3626", "pqrs\3377", "tuv\374\3718", "wxyz9",
" #*"
};
private static final String DEFAULT_UPPERCASE[] = {
"+0", ".,-?!'@_:;/()1", "ABC\305\304\306\3402", "DEF\350\3113", "GHI\3544", "JKL5", "MNO\321\326\330\3626", "PQRS\3377", "TUV\334\3718", "WXYZ9",
" #*"
};
private StringBuffer buffer;
private int inputMode;
private int inputType;
private String keyset[];
private int charNbr;
private int caretPosition;
private int state;
private char passwordChar;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -