Bitte um Hilfe! Zugriff auf "veränderte" Variablen

Status
Nicht offen für weitere Antworten.

exorzist

Mitglied
Folgendes Problem:
--------------------------

Mein Programm besteht aus 2 Klassen und einer GUI.
Über die GUI greife ich auf Variablen der Klasse a) zu, verändere ihren Inhalt und arbeite damit. Das funktioniert auch wunderbar, indem ich ein Objekt der Klasse a) erzeuge und dann mit

Code:
meinObjekt.variableAufruf
und/oder
Code:
meinObjekt.methodenAufruf()
arbeite.

Beispiel:
-------------
Meine erste Klasse heisst Auswahl. In dieser Klasse deklariere ich Variablen. Ich habe die Variablendeklaration seperat in einer Klasse, damit ich die Klasse evtl. später für weitere Zwecke nutzen kann.

Code:
public class Auswahl
{	
	// Kosten der Getränke in Cent
	double kostenKaffee = 150;
	double kostenCap = 80;
	double kostenEsp = 90;
	double kosten;
	double zeigeKosten;
	
	String waehrung = "";	
}

Aus meiner GUI Klasse, die Oberflaesche heisst, kann ich nun auf diese Variablen zugreifen, zb:

Code:
Auswahl benutzer = new Auswahl();
if (benutzer.kostenKaffee > 99)
    {
        benutzer.waehrung = "Euro";

Der Benutzer hat nun also seine Wahl getroffen und die entsprechenden Kosten sind aufgestellt. Nun kommt die GUI ins Spiel und das eigentliche Problem taucht auf. Ich habe nun auf der GUI weitere Buttons:

Code:
private Button button5 = new Button( "10 Cent");
private Button button6 = new Button( "20 Cent");
private Button button7 = new Button( "50 Cent");
private Button button8 = new Button( "1 Euro ");
private Button button9 = new Button( "2 Euro");

Der Benutzer soll nun durch klicken auf diesen Buttons die nötigen Kosten decken. Die Kosten, die gedeckt werden müssen, sind in der Variable

Code:
double benutzer.zeigeKosten

enthalten. In der weiteren Klasse b) wird die Geldeingabe, Getränkeausgabe und evt. Rückgeld behandelt. Allerdings funktioniert die Klasse b) leider zur Zeit nur in der Console so, wie sie sollte, denn, das Problem liegt daran, dass ich nicht weiss, wie ich dem Konstruktor der Klasse b), der wie folgt aussieht:

Code:
public Einwurf (double kosten)

die Kosten übergeben kann, wenn ich auf einen der Buttons klicke. In der Consolen-Version ist das einfach. Ich erzeuge einfach ein neues Objekt der Klasse Einwurf und übergebe ihm die Kosten, die in benutzer.zeigeKosten enthalten sind.

Aber in der GUI Version stosse ich auf das Problem, dass ich hier

Code:
class buttonZehnCent implements ActionListener
	{
		public void actionPerformed( ActionEvent e )
		{
			// 10-Cent Einwurf
		}
	}
im Grunde nicht weiss, wie hoch die Kosten sind, weil ich hier kein Objekt von Auswahl erzeugt habe und somit auch keine Kosten habe. Meine Logik sagt mir, ich müsste es irgendwie schaffen, den Geldeinwurfbuttons die Kosten mitzugeben, damit ich ein Objekt der Klasse Einwurf erzeugen kann und die Kosten dem Konstruktor zum weiteren Rechnen übergeben kann.

Also meine Frage lautet, kann mir hier jemand bitte eine Tipp, Rat oder sonst was geben? Bitte berücksichtigen, dass ich wirklich JAVA-Neuling bin. Danke! Und sorry für den langen Text, aber der musste sein, um das Problem zu verdeutlichen! 🙂
 
GANZ WICHTIG erstmal was in eigener sache: ein kaffe für 1 50 ist echt überteurt. da bekommste bei mir in der schule ja 3 spülmittel kaffee varianten. der gut kaffe kostet nur 70 und ein grosser becher (0,4 oder so) kostet 1,30. aber 1,50 für einen kaffe. als hätt ich nen geldscheisser.

den folgenden teil darfst du nur beachten wenn du den kaffe preis änderst 😉


wenn du die kosten hast musst du sie ganz normal der anderen klasse übergeben oder du setzt die werte in der anderen klasse auf static, dann erstellst du ein objekt davon auch in der berechnungsklasse und nimmst die werte raus. durch static sind sie ja die gleichen.

alles klar und denk an den kaffe preis
 
Der Kaffeepreis ist ja veränderbar.
Die Werte waren nur Testwerte über 99Cent, damit ich überprüfen konnte, ob das Programm den Unterschied zwischen Cent und Euro so bemerkt, wie ich es programmiert hatte.

Ursprünglich kostet der Kaffee in diesem Programm nur 50Cent.

Ich weiss nicht, ob Dein Vorschlag funktioniert, denn die endgültigen Kosten ergeben sich ja erst in der Klasse Oberflaesche, welche die GUI ist. Ich lese heraus, welches Getränk ausgewählt wurde und weiss zu jedem Getränk die Kosten.

Das Problem liegt doch aber wo anders. Undzwar um den Geldeinwurf überprüfen zu können, brauch ich ein Objekt der Klasse Einwurf. Der Konstruktor erwartet aber ein double Wert und genau das ist das Problem. Woher bekomm ich den aktuellen Wert der Variable kosten, um diesen dem Konstruktor beim Drücken eines Buttons zu übergeben?

Code:
public Einwurf (double kosten)

Wenn ich also zb durch das Drücken einer der Geld-Buttons ein Objekt der Klasse Einwurf erstellen würde, hätte ich doch keine Variable kosten, die ich dem Konstruktor übergeben kann, zumindest keine, mit aktuellem Wert.

Oder seh ich das falsch?

Bitte um Aufklärung. Wenn Code-Schnipsel gebraucht werden, damit das Problem vielleicht einwenig deutlicher wird, anfragen 🙂

Danke!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben