Integer-Wert aus AWT-List auslesen

Status
Nicht offen für weitere Antworten.

suka

Mitglied
Hallo!

ich habe eine AWT-List erstellt. In der werden eine Summe sowie diverse andere Dinge ("Datum, Zeit, etc.") aus Textfeldern eingelesen und an die Summe angehängt.

In einem JLabel werden die Summen aufsummiert und ausgegeben/aktualisiert.


Wenn ich jetzt z.B. so 10 Einträge in der Liste abgelegt habe, und ich mich jetzt aber z.B. beim 2. Eintrag versehen habe und diesen dann "rausnehmen/stornieren will, kann ich den Eintrag mit "remove" ja entfernen.

Die Summe im JLabel würde ja nicht mehr stimmen. Wie kann man den ausgewählten Listeneintrag + die entsprechende Summe löschen, um die Gesamtsumme im JLabel richtig darzustellen??
 
Jeden Eintrag, den ich in die Liste übergebe hat ja auch nen Wert ; die Summe -> diese wird in einem Textfeld eingetragen und dann mit getText() aus dem Textfeld geholt und einfach an die anderen Daten drangehangen.

z.B.
Datum 22.08.08, Uhrzeit 16:05 Uhr, Summe 4500
Datum 23.08.08, Uhrzeit 14:05 Uhr, Summe 5500
usw.

so stehts zurzeit in der Liste, wenn ich einen Eintrag hinzufüge

..und in dem Label wo die Gesamtsumme steht (hier als Bsp. 10000 weil 4500+5500)

summe = summe + Integer.parseInt(textfeld.getText());

und somit ehöht sich die Gesamtsumme ja immer 🙂

Ich hoffe jetzt ist es nen bisschen verständlicher geworden 🙂
 
Häm ... nicht so ganz ... das klingt vom Ablauf her... ... komisch. Legst du die Einträge einfach als Strings in die List? Oder gibt es eine Klasse "Eintrag" mit einer Methode "getSumme()" ? Warum gehtst du den Umweg über's Textfeld?
 
🙂 ...ja es klingt komisch...

Datum 22.08.08, Uhrzeit 16:05 Uhr, Summe 4500
Datum 23.08.08, Uhrzeit 14:05 Uhr, Summe 5500
Datum 24.08.08, Uhrzeit 11:51 Uhr, Summe 3300

gesamtsumme wäre ja bisher...13300


ich will eigentlich nur wissen, wie ich, wenn ich mich versehen habe bei den Summen, z.B. beim 1.Eintrag diese 4500 auslesen kann, und zwar nur die 4500 und nicht den Rest, und das diese 4500 von den 13300 wieder abgezogen werden.
Ich weiß nicht, wie ich es sonst erklären sollte 🙁

ja ich lege die Einträge als Strings in die Liste

welche Möglichkeit gibt es da denn ? Sry, bin noch so ziemlich am Anfang mit Java
Könntest du das näher erläutern mit der Methode "getSumme()" ?

Danke
 
wie willst du denn den Eintrag aus der Liste entfernen, hast du dafür einen Button?
dann kannst du doch bei der Bearbeitung der Liste auch das JLabel aktualisiert,
entweder die 4500 bestimmen und abziehen, oder die Summe der restlichen Elemente neu berechnen,

das sind nun eine Vielzahl von Aufgaben:
Stringmethoden,
List + Button + Listener,
mit deinen speziellen Einträge arbeiten, eigenes TableModel?

usw., das musst du alles zusammenbringen, da kann man keine Komplettanleitung geben, was ist deine Frage?
 
Code:
		String x = new String("Datum 22.08.08, Uhrzeit 16:05 Uhr, Summe 4500");
		
		String [] spl = x.split(" ");
		
		System.out.println(spl[6]); //4500

		int erg = 0;
		
		erg += Integer.parseInt(spl[6]);

Bau dir ne Schleife und dann passt das 🙂

Welche Liste nutzt du?
 
Hey, erstmal vielen Dank für die schnellen Antworten!

@ xdavidx: Das war ne gute Idee mit der split-Methode 🙂
Ich hab´s jetzt aber mit "substring" gelöst, da funzt echt gut 🙂


Datum 22.08.08, Uhrzeit 16:05 Uhr, Summe 4500

Code:
String a = list.getSelectedItem().substring(41); // 4500

Danke nochmal!
 
hoffentlich steht nie 'Uhrzeit 5:50' in deinem String, dann überspringst du eine Ziffer
 
🙂 ...genau das ist mir gerade passiert.


aber ich hab´s jetzt anders gemacht
anstatt:
Datum 22.08.08, Uhrzeit 16:05 Uhr, Summe 4500

schreibe ich jetzt:
Summe 4500, Uhrzeit 16:05 Uhr, 22.08.08

und mit
Code:
String a = list.getSelectedItem().substring(6, 9);

weil die einzelnen Summen sowieso nie die 10000er Marke erreichen 🙂

Danke nochmal!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben