Telefonbuch - Einträge anzeigen

kpvonnichts

Mitglied
Hallo,

habe ein kleines Problem mit einem Infoprojekt. Es soll ein ganz simples "Telefonbuch" sein, also im Prinzip eine ArrayList aus Einträgen:
Java:
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:

Java:
    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

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

kpvonnichts

Mitglied
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

Top Contributor
du kannst bspw. deinen mit der Methode
Code:
getText()
erhaltenen String zu einem int zu parsen und dann die evtl. geworfene Exception behandeln.
Die Variablendeklaration für
Code:
i
macht so natürlich keinen Sinn...

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

Blakh

Bekanntes Mitglied
Ich habe für ein Zahlenfeld folgendes verwendet:

Java:
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 :).
 

Neue Themen


Oben