Object-Instanz in Date übersetzen

MArCus88

Mitglied
Hallo liebe Forummember,

wieder einmal brauche ich eure geschätzte Hilfe. Nach langem Googeln, Nutzen der SuFu hier im Forum und Stöbern in der Java API komme ich leider nicht weiter bei meinem Problem.

Am besten schildere ich kurz das Programm um das es geht. Als Hausaufgabe sollen wir den Prototyp eines Programms erweitern, bei dem es um die Verwaltung von Tischkickerspielen geht. Das Programm hat mehrere Tabs, konkret brauche ich Hilfe bei dem ersten Tab. Das GUI steht soweit, da es im Groben schon vorgegeben war. In diesem ersten Tab geht es darum Spieler anlegen, ändern und löschen zu können. Das ganze wird dann in eine DB4O Datenbank gespeichert und bei Programmstart wieder aufgerufen um so die Spielertabelle zu füllen. Wir nutzen dabei das MVC-Prinzip und nutzen dabei (grob) folgende Klassen:

1. Model
Das Model enthält eine ArrayList in der die Instanzen der selbst erstellten Klasse Spieler gespeichert werden. Diese ArrayList dient als Datenquelle für den JTable, welcher die Spieler dann anzeigt. Darüber hinaus besitzt das Model noch einen temporär gesetzten Spieler, welcher gerade bearbeitet bzw. neu hinzugefügt wird.

2. View
Die View besteht im Wesentlichen aus 4 Eingabetextfeldern für die Spielerdaten (Vorname, Nachname, Angabe seit wann der Spieler kickert, Geburtsdatum), 2 Buttons und einer JTable in der die vorhandenen Spieler dargestellt werden. Die View bezieht ihre Daten aus dem Model.

3. Controller
Der Controller als Bindeglied zwischen View und Model implementiert die Action- und MouseListener. Die Actions werden durch die beiden Buttons ausgelöst und der MouseListener soll auf Klicks auf die JTable reagieren.

So das war das Programm, mal in aller Kürze zusammengefasst. Jetzt kommt mein eigentliches Problem ...

Ich möchte, dass die Textfelder für die Spielereingaben sich mit den Daten des in der JTable selektierten Spielers füllen. Im nächsten Schritt soll der Benutzer die Daten dann ändern können. Die Frage ist jetzt: Wie beschaffe ich mir den aktuell selektierten Spieler? Zuerst bin ich das Problem so angegangen, dass ich den Spieler mit dem Index der selektierten Zeilennummer aus der JTable aus der ArrayList geladen habe. Das war auch kein Problem, da die Spieler in der ArrayList in genau der Reihenfolge wie in der JTable sortiert sind. Nun weiß ich aber, dass wir die Aufgabe möglichst so lösen sollten, dass wir nicht über den Index gehen, sondern zeigerorientiert arbeiten sollen.

Ich hab mir dazu Folgendes gedacht: Ich lege mir in meinem Controller eine neue Spieler-Instanz an, nennen wir sie selectedPlayer und hole mir seine Daten aus dem Model über die dort wegen des Interfaces implementierte Methode getValueAt(). Diese Methode rufe ich über eine neue Methode aus der View heraus auf. Allerdings liefert mir die getValueAt()-Methode nur Object-Instanzen zurück. Genau da liegt mein Problem. Dazu hab ich folgende Zeilen Code geschrieben:

Java:
                // temporären Spieler anlegen
		Player tmp = new Player();
		
		// Spielerdaten aus dem selektierten Spieler holen
		tmp.setFirstName((String)playerTable.getValueAt(playerTable.getSelectedRow(), 0));
		tmp.setFamilyName((String)playerTable.getValueAt(playerTable.getSelectedRow(), 1));
		     tmp.setPlaysSince(Integer.decode((String)playerTable.getValueAt(playerTable.getSelectedRow(), 2)));
		
		Object dateOfBirthObject = playerTable.getValueAt(playerTable.getSelectedRow(), 3);
		String dateOfBirthString = (String)dateOfBirthObject;
		DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.GERMANY);
		try
		{
			Date dateOfBirth   = df.parse(dateOfBirthString);
			tmp.setDateOfBirth(dateOfBirth);
		} catch (ParseException e)
		{
			// nicht implementiert da korrektes Parsing immer möglich ist
		}
		return tmp;

Die Daten Vorname und Name (beides Strings) sowie die Angabe seit wann der Spieler spielt (ein Integer-Wert) bekomme ich einwandfrei über typecast bzw. über die statische Methode Integer.decode(String) hin. Das Problem ist das Geburtsdatum, welches ein Date ist. Mein Ansatz war, dass ich mir den rückgegebenen Object-Wert speichere, ihn dann in einen String überführe und ihn dann in ein Date parse. Nur schon bei der Überführung in einen String knallts bei mir mit einer Exception. Ich hab mir dann im Debugger den Inhalt des Objects angeschaut und festgestellt, dass die korrekten Daten in der Instanz vorhanden sind, allerdings geht die Überführung von Object in Date schief :rtfm:

Ich danke für jegliche Hilfe im vorraus!

lieben Gruß
Marcus

Edit: Ups ich hab Mist erzählt sehe ich gerade beim compilieren. Schon bei der Zeile in der ich einen Int-Wert haben möchte knallts bei mir. Also falls mir jemand dort schon Hilfe geben könnte, wäre ich sehr dankbar :)
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
ich hab mir das jetzt nicht alles durchgelesen

Das Problem ist das Geburtsdatum, welches ein Date ist. Mein Ansatz war, dass ich mir den rückgegebenen Object-Wert speichere, ihn dann in einen String überführe und ihn dann in ein Date parse. Nur schon bei der Überführung in einen String knallts bei mir mit einer Exception.
Du kannst ihn nicht auf einen String casten, da es ein Date ist.. also nicht casten und auf Date parsen sondern einfach auf Date casten und fertig...
 

MArCus88

Mitglied
Okay hab vielen Dank! Ich hab das zwar gestern schon x Mal versucht, aber irgendwie meckerte dann der Compiler immer wieder o_O Wer weiß was ich da falsch gemacht hab :oops:

Kannst du mir sonst auch sagen wie ich das gleiche mit Object zu Integer machen kann? Die IDE sagt mir nämlich, dass ein cast von Object zu Integer nicht möglich ist :(
 

Andi_CH

Top Contributor
Hm etwas erscheint mir seltsam:

Java:
 Object dateOfBirthObject = playerTable.getValueAt(playerTable.getSelectedRow(), 3);

Was ist in playerTable drin? Wirklich Objects oder etwas anderes? Dann sollte playerTable und dateOfBirthObject auch entsprechend definiert sein.

Da einfach alles Object ist, wird sich Object in den seltensten Fällen in einen int casten lassen - hm int sowieso nicht - wohl eher Integer .....
 

ARadauer

Top Contributor
Okay hab vielen Dank! Ich hab das zwar gestern schon x Mal versucht, aber irgendwie meckerte dann der Compiler immer wieder o_O Wer weiß was ich da falsch gemacht hab :oops:

Kannst du mir sonst auch sagen wie ich das gleiche mit Object zu Integer machen kann? Die IDE sagt mir nämlich, dass ein cast von Object zu Integer nicht möglich ist :(

glabu ich nicht... der compiler meckert nicht, der gibt saubere fehlermeldungen. Bisschen mehr Respekt, sowas geiles gabs früher nicht! :D

Du sagst das ist ein Date, dann kannst du es auch casten...

Ich denke eher, das du vielleicht vermutest das es ein Date ist, es aber gar kein Date ist.
Oder du irgend so einen schmarrn machst: String data = (Date) o;...

also mach mal ein .getClass().toString() dann siehst du was es wirklcih ist...

Java:
      Object o1 = new Date();
      Object o2 = new Integer(42);
      
      Date d = (Date) o1; //geht problemslos
      Integer i = (Integer) o2; //das auch...
      
      System.out.println(o1.getClass().toString());
      System.out.println(o2.getClass().toString());
 

Andi_CH

Top Contributor
Gib doch einfach mal den Klassennamen aus, bevor du castest - wie oben oder so

Java:
Object bla = new Integer(1);
Object blub = new Vector<Integer>();
System.out.println("Object's Class name =>"+ bla.getClass().getName());
System.out.println("Object's Class name =>"+ blub.getClass().getName());
Output:
Code:
Object's Class name =>java.lang.Integer
Object's Class name =>java.util.Vector
 
Zuletzt bearbeitet:

MArCus88

Mitglied
Danke euch allen, mein Problem hat sich nun gelöst! Das mit dem Object in Date casten hat geklappt. Ich bin mir übrigens sicher dass es ein Date ist, ich habs schließlich so gespeichert ;)

Den Integer-Wert brauche ich nun doch nicht. Manchmal sieht man den Wald vor lauter Bäumen nicht^^ Ich brauche zur Identifikation des gesuchten Players in der ArrayList nur den Namen, Vornamen und das Geburtsdatum. Seit wann der gute kickert, ist ja nun wirklich uninteressant, ich kann ihn über die anderen Eigenschaften zweifelsfrei identifizieren.

@Andi_CH:
In der playerTable sind die Daten über die Spieler drin. Sprich 4 Spalten: 2 Spalten für den Namen und Vornamen (Strings), 1 Spalte für den Geburtstag (Date) und eine Spalte über die Jahresangabe seit wann der Spieler kickert (int). Den Int-Wert brauche ich ja wie gesagt nicht mehr.

@ARadauer:
Sicher hat er eine Fehlermeldung ausgespuckt die mich eventuell auch auf meinen Fehler hätte hinweisen müssen. Allerdings wars gestern schon spät als ich zuletzt dran saß, hab ich wohl iwas versaubeutelt :oops:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Ist eine Instanz von einem bestimmten Object Typ? Allgemeine Java-Themen 6
L Object Instanz anhand eines Strings Allgemeine Java-Themen 10
H Object cast exception Allgemeine Java-Themen 7
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
Zeppi Cast Object in Generics Allgemeine Java-Themen 4
MoxxiManagarm Mapping into existing object Allgemeine Java-Themen 15
coolian Swing erstellt fillreckt immmer ein neues object Allgemeine Java-Themen 13
N Wo ist Object.class ? Allgemeine Java-Themen 0
R Erste Schritte Object reference funktioniert nicht. Wie mach ichs richtig? Allgemeine Java-Themen 3
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
N Gibt es etwas allgemeineres as Object? Allgemeine Java-Themen 16
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
Z Vergleich zwischen int und Object Allgemeine Java-Themen 1
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
T InvalidClassException - Read null attempting to read class descriptor for object Allgemeine Java-Themen 8
L Sortieren von "Map<String, Object>" Allgemeine Java-Themen 2
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
G REST- Object darstellung Allgemeine Java-Themen 6
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
darekkay Generics: Wildcard und Object Allgemeine Java-Themen 5
O Socket Object wird scheinbar falsch empfangen Allgemeine Java-Themen 6
N Klasse/Object Eigenaufruf Allgemeine Java-Themen 5
G JNI Shared Object Allgemeine Java-Themen 10
B Variable class in java.lang.Object Allgemeine Java-Themen 11
S Klassen Zuorgnung Object-char Allgemeine Java-Themen 2
N java.lang.IllegalMonitorStateException: object not locked by thread before notify() Allgemeine Java-Themen 2
S Type mismatch: cannot convert from Object to float Allgemeine Java-Themen 3
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
M Jaxb und JPA: A cycle is detected in the object graph Allgemeine Java-Themen 5
H double dispatch und equals(Object) Allgemeine Java-Themen 6
J Datentypen Problem mit Date-Object Allgemeine Java-Themen 2
B Variablen Alle RenderingHints.Keys (KEY_*) in Array + alle RenderingHints.Keys (VALUE_*) in Object[] Allgemeine Java-Themen 8
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
A Datei als Object einlesen und das Object als Singleton instance setzen. Allgemeine Java-Themen 13
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
J Casting Problem Object, Double und String Allgemeine Java-Themen 3
P Tree Object structure Allgemeine Java-Themen 19
G Object mit clone kopieren Allgemeine Java-Themen 21
J merkwürdig: Object Allgemeine Java-Themen 6
woezelmann Object nach Deserialisierung nicht mehr gleich Allgemeine Java-Themen 13
Iron Monkey Object in Datei effizienter lesen / schreiben Allgemeine Java-Themen 13
L Object = null? Allgemeine Java-Themen 16
dayaftereh Serializable und Object In/Out Stream Allgemeine Java-Themen 2
T Object auf Double, Int, String testen Allgemeine Java-Themen 5
N serialize deserialize java object über string Allgemeine Java-Themen 8
N getName() of reflection Object Allgemeine Java-Themen 4
B Probelm mit File Object Allgemeine Java-Themen 6
G NoClassDefFoundError: java/lang/Object Allgemeine Java-Themen 4
S Liste Object Löschen Allgemeine Java-Themen 7
P not enough space for object heap - Trotz mehr RAM? Allgemeine Java-Themen 6
MQue List<String> aus List<Object> generieren Allgemeine Java-Themen 2
M ArrayList<Object[]> und toArray() Allgemeine Java-Themen 5
Daniel_L LinkedList vom Typ Object-Array? Allgemeine Java-Themen 4
B Warum return type Object ? Allgemeine Java-Themen 4
D Generisches Object erstellen Allgemeine Java-Themen 2
M Databinding von Object zu properties-Datei Allgemeine Java-Themen 10
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
A NullPointer bei konvertierung von byteArr --> Object Allgemeine Java-Themen 3
foobar Object to byte[] ohne Serializable Allgemeine Java-Themen 6
reibi Object clonen spezial Allgemeine Java-Themen 8
C casten vom Typ Object nach Double[][] Allgemeine Java-Themen 2
X cannot convert from Object[] to Integer[] Allgemeine Java-Themen 2
G JSON Object auslesen Allgemeine Java-Themen 1
T cast Object to Double[] Allgemeine Java-Themen 2
G Object. Wrapper Allgemeine Java-Themen 12
V Object durchsuchen Allgemeine Java-Themen 4
U eigene Datenstruktur ArrayList<String> nach Object [][ Allgemeine Java-Themen 2
T "Object o = new Object()" vs. "new Object()&q Allgemeine Java-Themen 8
T Object -> byte[] Allgemeine Java-Themen 5
M Implementation von Zugriffen auf Object[index] in der JVM Allgemeine Java-Themen 9
T Klasse => Primitiv ? Object instanceof Klasse Allgemeine Java-Themen 2
B mit methode ein object zurückgeben. Allgemeine Java-Themen 5
R Object Dynamisch erzeugen (Reflection API) Allgemeine Java-Themen 22
T HashMap (String, Object(String , int)) nach int sortieren Allgemeine Java-Themen 7
P Typ Object in socket umwandeln Allgemeine Java-Themen 4
G Object cast via Reflection Allgemeine Java-Themen 8
Zed JList Object einfügen und Text anzeigen Allgemeine Java-Themen 3
MQue Object in Integer umwandeln Allgemeine Java-Themen 3
G Error: Hashtable Type safety: The method put(Object, Object) Allgemeine Java-Themen 6
T double to object Allgemeine Java-Themen 3
S File Object zu Directory machen ? Allgemeine Java-Themen 9
V Brauche dringend Hilfe. Object-handling Allgemeine Java-Themen 4
N Warning "The Cast from Object to" Allgemeine Java-Themen 9
K Threads und ein übergeordnetes Object Allgemeine Java-Themen 7
F Zugriff mittels getObject() oder this.object ? Allgemeine Java-Themen 8
W Object -> isPrimitiv? Allgemeine Java-Themen 7
D Cast schlägt fehl : Object[] zu Button[] Allgemeine Java-Themen 2
S Object nach Integer umwandeln Allgemeine Java-Themen 13
R object zu array casten. Allgemeine Java-Themen 2
N Map Object Allgemeine Java-Themen 13
G Eine C/C++ Referenz in einem Java Object speichern Allgemeine Java-Themen 5
N Ermitteln welchen Typ ein "Object"-Objekt enthält Allgemeine Java-Themen 11
K Cast ohne neues Object zu erzeugen Allgemeine Java-Themen 12
D Object in int casten Allgemeine Java-Themen 7
N Object-Array mit Comparator absteigend sortieren? Allgemeine Java-Themen 10
D Object to Long casting Allgemeine Java-Themen 9
G Object mit static Feldern speichern Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben