8.4.7 Die Klasse IntJTextField.java
package BeispielApplet; import javax.swing.JTextField; // Klasse wurde von JTextField abgeleitet und einige // Methoden ergaenzt bzw. der Konstruktor veraendert. public class IntJTextField extends JTextField { private int low; // untere Grenze des Wertebereiches private int high; // obere Grenze des Wertebereiches // Konstruktor der Klasse dem beim Erzeugen des Objektes // wird der Wertebereich der Eingabe uebergeben. public IntJTextField ( int min, int max){ this.low = min; this.high = max; } // Methode um festzustellen, ob die Eingabe des Objektes // ein Int-Wert im erlaubten Wertebereich ist. public boolean isValid(){ int value; try { // Eingabe wird in einen Int-Wert umgewandelt. value = Integer.parseInt(this.getText()) ; if (value < low || value > high) { // Liegt der eingegebene throw new NumberFormatException(); // Wert außerhalb des } // Wertebereiches } // erfolgt Fehlermeldung catch (NumberFormatException f) { // Es wird kontrolliert ob der Fehler durch // die fruehere Ausgabe "k.p.D." entstanden ist. if (this.getText().equals("keine pos. Differenz")) return false; this.setText(" "+this.low+ "-" +this.high+" eingeben"); this.selectAll(); // Bei einem Fehler this.requestFocus(); // wird der Wertebereich return false; // angezeigt und das betreffende } // Textfeld markiert. return true; } // Methode zum Auslesen des Textfeldes public int getValue(){ return Integer.parseInt(this.getText()); } }