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

📄 numbertextfield.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 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 + -