# Telefonbuch - Einträge anzeigen



## kpvonnichts (22. Feb 2011)

Hallo,

habe ein kleines Problem mit einem Infoprojekt. Es soll ein ganz simples "Telefonbuch" sein, also im Prinzip eine ArrayList aus Einträgen:

```
public class Entry{

  private String name;
  private String adress;
  private String phoneNumber;
  private int age;
 

  public Entry(String name, String adress, String phoneNumber, int age) {
    super();
    this.name = name;
    this.adress = adress;
    this.phoneNumber= phoneNumber;
    this.age= age;
  }
               //+ getter und setter

}
```

Mein Problem liegt darin, dass ich es nicht hinbekomme, in einem ganz simplen JFrame diese Einträge anzuzeigen. Bei einzelnen Strings oder Ints geht das ja (wenn die ArrayList "entries" heißt) mit entries.get(index). Hier habe ich aber gleich 3 Strings und 1 Int, die ich wiedergeben muss.
Bei einem einzelnen String oder Int würde ich das in etwa so lösen:


```
public String show(int number) {
        if(number< 0) {
            return "Falsche Eingabe";
        }
        else if(number < countEntries()) {
            return "" +entries.get(number);
        }
        else {
            return "Falsche Eingabe";
        }
    }
```

Wie kann ich das mit der Klasse Entry machen?


----------



## Simon_Flagg (22. Feb 2011)

```
Entry[] entries; // so oder so ähnlich gespeichert
...
// in Methode
return "" + entries.get(number).getName() + " " +  entries.get(number).getAddress() + ...;
```


----------



## kpvonnichts (22. Feb 2011)

Danke für die Antwort, das funktioniert. Jetzt hätte ich noch eine Frage: Gibt es eine Methode, mit der man feststellen kann, ob der Inhalt eines JNumberFields auch tatsächlich Zahlen sind?


----------



## jgh (23. Feb 2011)

du kannst bspw. deinen mit der Methode 
	
	
	
	





```
getText()
```
 erhaltenen String zu einem int zu parsen und dann die evtl. geworfene Exception behandeln.
Die Variablendeklaration für 
	
	
	
	





```
i
```
 macht so natürlich keinen Sinn...


```
try{
			int i = Integer.parseInt(numberField.getText());
		}catch (NumberFormatException nf){
			// hier dann die Fehlerbehandlung
		}
```


----------



## Simon_Flagg (23. Feb 2011)

es gibt da noch so eine methode isNaN() oder so --> is Not a Number entweder in Integer oder in Double

lg


----------



## Blakh (24. Feb 2011)

Ich habe für ein Zahlenfeld folgendes verwendet:


```
JFormattedTextField noField= new JFormattedTextField();
noField.setFormatterFactory(new DefaultFormatterFactory(
					new NumberFormatter(new DecimalFormat("#0"))));
			((NumberFormatter) noField.getFormatter())
					.setAllowsInvalid(false);
```

Damit kann der Benutzer nur Zahlen eingeben und es funktioniert bei mir. Probiers mal aus .


----------

