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

📄 pintfield.java

📁 更方便的SWING
💻 JAVA
字号:
/*
 * PSwing Utilities -- Nifty Swing Widgets
 * Copyright (C) 2002  Pallas Technology
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 * 
 * Pallas Technology
 * 1170 HOWELL MILL RD NW
 * SUITE 306
 * ATLANTA GEORGIA 30318
 * 
 * PHONE 404.983.0623
 * EMAIL info@pallastechnology.com
 * 
 * www.pallastechnology.com
 **************************************************************************
 * $Archive: SwingTools$
 * $FileName: PIntField.java$
 * $FileID: 35$
 *
 * Last change:
 * $AuthorName: Rob MacGrogan$
 * $Date: 8/10/03 7:20 PM$
 * $VerID: 94$
 * $Comment: A JTextField optomized for holding only int values.
 *          Field contents aligned right. And if user enters a non-int value,
 *          will revert to previous value.$
 **************************************************************************/
package com.pallas.swing;

import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.text.Document;

/**
 * Title:   $FileName: PIntField.java$
 * @version $VerNum: 1$
 * @author $AuthorName: Rob MacGrogan$<br><br>
 * 
 * $Description: A JTextField optomized for holding only int
 *              values. Field contents aligned right. And if user enters a
 *              non-int value, will revert to previous value.$<br>
 * $KeyWordsOff: $<br><br>
 */
public class PIntField extends JTextField {

  private int lastValue = 0;

	/**
	 * Constructor for PIntField.
	 */
	public PIntField() {
		super();
    setHorizontalAlignment(SwingConstants.RIGHT);
    addFocusListener(new PIntFieldFocusListener(this));
    setText(Integer.toString(lastValue));
	}

	/**
	 * Constructor for PIntField.
	 * @param arg0
	 */
	public PIntField(int value) {
		super();
    setHorizontalAlignment(SwingConstants.RIGHT);
    addFocusListener(new PIntFieldFocusListener(this));
    setText(Integer.toString(value));
    lastValue = value;
	}

  public int getInt(){
    return Integer.parseInt(getText());
  }


  private static class PIntFieldFocusListener implements FocusListener{
    PIntField field = null;
    public PIntFieldFocusListener(PIntField field){
      this.field = field;
    }
    
    public void focusGained(FocusEvent ev) {}
    
    public void focusLost(FocusEvent ev) {
      //Check if new value is an integer.
      try{
        String sVal = field.getText();
        int val = Integer.parseInt(sVal);
        //An integer, so reset last value.
        field.lastValue = val;
      }
      catch (NumberFormatException ex){
        //Not an integer, so use last value.
        field.setText(Integer.toString(field.lastValue));
      }
    }
    
  }//End SizeFocusListener

}

⌨️ 快捷键说明

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