📄 numbertextfield.java
字号:
package net.aetherial.gis.surface.design;
import javax.swing.JTextField;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class NumberTextField extends JTextField{
private char[] numchar = {'0','1','2','3','4','5','6','7','8','9','.'};
public NumberTextField() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
this.addKeyListener(new NumberTextField_this_keyAdapter(this));
}
private char getLastChar(String text){
char ch = '#';
if(!(text.equals(""))){
ch = text.charAt(text.length() - 1);
}
return ch;
}
private char[] getCharArrayExceptLastChar(String text){
if(text.length() <= 1){
return null;
}else{
return (text.substring(0,text.length()-1)).toCharArray();
}
}
private boolean isDot(char ch){
if (ch == '.') {
return true;
}else{
return false;
}
}
private boolean isTherehaveDot(char[] array){
if (array != null) {
for (int i = 0; i < array.length; i++) {
if(array[i] == '.'){
return true;
}
}
}
return false;
}
private String CorrectEnter(String text) {
text = text.trim();
text = text.replaceAll("。", ".");
char ch = this.getLastChar(text);
char[] ch_before = this.getCharArrayExceptLastChar(text);
if (this.isDot(ch)) {
if (isTherehaveDot(this.getCharArrayExceptLastChar(text))) {
return new String(ch_before);
}
else {
return text;
}
}
else if (this.isInNumchar(ch)) {
return text;
}
else {
if (ch_before != null) {
return new String(ch_before);
}else{
return "";
}
}
}
// private void CorrectEnter(String charact){
// String n = "";
// enterchar = charact.toCharArray();
// if (enterchar != null) {
// for (int i = 0; i < enterchar.length; i++) {
// if (this.isInNumchar(enterchar[i])) {
// n = n + enterchar[i];
// }
// }
// }
// this.setText(n);
// }
private boolean isInNumchar(char ch){
boolean in = false;
for (int i = 0; i < numchar.length; i++) {
if (numchar[i] == ch) {
return true;
}
}
return in;
}
public double getData(){
double data = 0.0;
try {
data = Double.parseDouble(this.getText());
}catch(Exception ex){
}
return data;
}
public void setData(double data){
this.setText(data +"");
}
public void setData(String data){
this.setText(data);
}
public void this_keyReleased(KeyEvent e) {
// this.CorrectEnter(this.getText());
this.setText(CorrectEnter(this.getText()));
}
}
class NumberTextField_this_keyAdapter
extends KeyAdapter {
private NumberTextField adaptee;
NumberTextField_this_keyAdapter(NumberTextField adaptee) {
this.adaptee = adaptee;
}
public void keyReleased(KeyEvent e) {
adaptee.this_keyReleased(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -