JIntField

 

package de.niccomatik.codeschnipsel;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JTextField;

/**
 * @author Niclas Roßberger
 * 
 */
public class JIntField extends JTextField {

	/**
	 * 
	 */
	private static final long serialVersionUID = -124760721943216060L;
	private boolean negativ = false;

	/**
	 * 
	 */
	public JIntField() {
		init();
	}

	/**
	 * @param number
	 */
	public JIntField(int number) {
		super("" + number);
		init();
	}

	private void init() {
		this.addKeyListener(new KeyListener() {

			@Override
			public void keyTyped(KeyEvent ke) {
				// TODO Auto-generated method stub
				String z = ke.getKeyChar() + "";

				if (z.equalsIgnoreCase("-") && negativ) {
					if ((getText().charAt(0) + "").equalsIgnoreCase("-")) {
						setText(getText().substring(1));
					} else {
						setText("-" + getText());
					}

				}
				try {
					Integer.parseInt(z);
				} catch (NumberFormatException e) {

					ke.consume();

				}
			}

			@Override
			public void keyReleased(KeyEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub

			}
		});

	}

	/**
	 * @param number
	 */
	public void setNumber(int number) {
		this.setText("" + number);
	}

	/**
	 * @return Die Nummer im JIntField (bei "" wird 0 zurückgegeben)
	 */
	public int getNumber() {

		int number = 0;

		try {
			number = Integer.parseInt(getText());
		} catch (NumberFormatException e) {
			number = 0;
		}

		return number;
	}

	/**
	 * @param negativ
	 *            true = Negative Zahlen erlaubt ; 
	 *            false = Negative Zahlen verboten (Standard: flase)
	 */
	public void setNegativ(boolean negativ) {
		this.negativ = negativ;
	}

	/**
	 * @return Ob negative Zahlen erlaubt sind
	 */
	public boolean isNegativ() {
		return negativ;
	}

}


"