Compiler-Fehler Benötige Hilfe bei Java Projekt Stack, Zugriffsprobleme

Lennart.

Mitglied
Im Zuge des Informatik Unterrichts der Q1 in der gymnasialen Oberstufe wurde uns eine Projektarbeit aufgetragen, bei der wir eine Art von Liste in einem realitätsnahen Kontext verwenden sollen.
Ich habe mich für einen Warenkorb entschieden, der von einem Stack repräsentiert wird.
Man kann über ein GUI ein Regal auswählen und so dann in einem neuen Fenster einen "Produkt" Button anklicken, der dann ein "Produkt1" in den Stack legt. Immer wenn ein Produkt in den Stack gelegt wird, erhöht sich eine Zählvariable, die dann über "Warenkorb anzeigen" (bzw. später über Kasse") den Stack ausgibt, indem mit "(String)Notizen.stack.top()" dieser in einen String gecastet wird.
Mein Problem ist, dass meine Zählvariable "zaehlerges" aus der Summe von drei Zählvariablen besteht, die immer dann erhöht werden, wenn eines der drei Produkten in den Stack gelegt wird.
Die drei Zähler müssen von der Klasse WarenkorbWindow aus second, third und fourth window abrufbar sein, damit sie addiert werden können.
Ich bekomme es nicht hin, die Zähler P1,2 und 3 public zu setzen. Es wäre nett, wenn ich diesbezüglich Hilfe und vielleicht auch generelle Hinweise zu dem Programm bekommen würde.
Mit freundlichen Grüßen
Lennart

https://www.dropbox.com/s/rd3tzwl9xm9jr38/Warenkorb 15.12.rar?dl=0

Die Datei besteht aus Liste, Stack und zwei Notizen Dateien. Diese zwei sind das eigentliche Programm.

Wenn Änderungen vorgenommen werden, bitte als neues RAR/ZIP Archiv hochladen

UML Info.png
 
Zuletzt bearbeitet:

Foxei

Bekanntes Mitglied
Also ich muss leider sagen das es mir nicht möglich war dein Projekt zu starten :/ Wenn man einen Projekt Source verteilt sollte dieser immer mit .java Dateien und nicht .class Dateien bestückt sein. Es macht uns unnötig viel Arbeit alles zu Packen und zusammen zu suchen... Desweiteren sorgst du dadurch nur dafür das sich weniger Leute um dein Problem kümmern weil der Aufwand einfach zu groß ist.

Da ich deinem Bild auch nicht ganz entnehmen könnte wie du das gemacht hast und warum du selber Listen schreibst wenn Java diese doch bereits Anbietet o_O
Desweiteren ist dein Code sehr unübersichtlich da weder Kommentare enthalten sind noch hälst du dich an eine schlichte GUI - WorkFlow Trennung was das ganze erheblich schwieriger macht zu lesen :/
Ich habe also kurz ein kleines Projekt erstellt das wohl genau das tut was du dir vorgestellt hast.
Wenn das das ist was du gesucht hast melde dich nochmal ich kann dir dann gerne erklären wie das Funktioniert. (Die .jar Datei ist Runable einfach runterladen und doppelklicken)
Java.png
 

Anhänge

  • Regal.jar
    9,8 KB · Aufrufe: 10
  • Sorce.zip
    4,5 KB · Aufrufe: 2

Lennart.

Mitglied
Vielen Dank für die konstruktive Kritik. Ich werde zwar lieber an meinem projekt weiter arbeiten, aber gucke mir deine Lösung auf jeden Fall an.

Ich kann nicht glauben, dass du das Programm "mal eben" gemacht hast :D sind seit 4 Doppelstunden an der Arbeit
 

Foxei

Bekanntes Mitglied
Ich bin Schüler an einer Gesamt Schule in der Q2 allerdings habe ich das Niveau einer Schule bereits verlassen ich habe einen Nebenjob als Programmiere in einer relativ großen Firma. Aber um es dahin zu schaffen gab es sehr viele Stunden wo ich genau wie du vor einem Problem stand und einfach nicht weiter wusste. :D

Achso und nochwas mit welchem Compiler arbeitet ihr überhaupt?
 

Foxei

Bekanntes Mitglied
Also mein Freund hier ist nochmal dein Eigenes Projekt etwas Frisiert ich habe dir an alle Änderungen die ich vorgenommen habe einen Kommentar geschrieben solltest du dennoch Fragen habe dann immer her damit :)

Kurz damit du nicht erschreckt ich habe das Projekt auf 4 Klassen gekürzt weil mehr nicht Notwendig sind :)
p.s. da ich nicht genau wusste was die TextFelder sollen sind diese jetzt zu eingabe Feldern für die menge geworden die ihr von Produkt 1 2 oder 3 hinzufügen wollt. Außerdem war die Kasse.class leer also haben ich hier auch nicht verändert die Kasse hat somit im Moment keine Funktion mehr. Dein Ursprüngliches Problem mit dem public habe ich gelöst in dem ich die Notizen.class an die ProduktWindows weitergebe un diese setzen dann den counter neu :)
 

Anhänge

  • SourceKasse.zip
    3,1 KB · Aufrufe: 1

Lennart.

Mitglied
Vielen, vielen Dank für die Hilfe. Das Problem ist, dass ich bei dem ersten Programm ein Array benutze und nicht wie gefordert einen Stack. Bei dem zweiten Beispiel wird "glaube" ich eine List benutzt.
Die Aufgabe war, und das haben wir in unserer "Version" ja auch versucht umzusetzen, einen Stack/List zu benutzen. Bei der zweiten Version erschließt sich mir die Funktionsweise nicht.
Kannst du das zweite Projekt entweder mit einem "erkennbaren" Stack umschreiben oder zumindest die Stellen, an denen man die List erkennen kann mit Kommentaren erklären ? Wäre echt perfekt
 

Foxei

Bekanntes Mitglied
Hallo Lenart,
also beim Beispiel zwei nutze ich keine Liste aber das Beispiel 2 ist auch mehr als unschön da ich es irgendwie in eure vorgaben rein Quetschen musste.

Bei dem Beispiel 1 verwende ich eine Spezielle Art einer Liste ich nutze eine HasMap bei dieser Art von Liste wird zu einem Bestimmten Objekt eine anderes bestimmtes Objekt hinterlegen allerdings niemals Doppelt.

Wenn ich also hinter den String "Test" die Zahl 1 Hinterlegen kann nicht gleichzeitig hinter dem Word "Test" auch die Zahl 2 hinterlegt sein.

Eine List oder einen was auch immer es sein soll "Stack" zu verwenden sehe ich hier als nicht Praktisch an.

Gruß Simon :)
 

Lennart.

Mitglied
Hallo Lenart,
also beim Beispiel zwei nutze ich keine Liste aber das Beispiel 2 ist auch mehr als unschön da ich es irgendwie in eure vorgaben rein Quetschen musste.

Bei dem Beispiel 1 verwende ich eine Spezielle Art einer Liste ich nutze eine HasMap bei dieser Art von Liste wird zu einem Bestimmten Objekt eine anderes bestimmtes Objekt hinterlegen allerdings niemals Doppelt.

Wenn ich also hinter den String "Test" die Zahl 1 Hinterlegen kann nicht gleichzeitig hinter dem Word "Test" auch die Zahl 2 hinterlegt sein.

Eine List oder einen was auch immer es sein soll "Stack" zu verwenden sehe ich hier als nicht Praktisch an.

Gruß Simon :)
Ein Stack ist eine Art List die nach dem "First in - Last out" funktioniert.
Der deutsche Begriff ist "Keller"
Ich frage bei nächster Gelegenheit mal ob wir die hashmap benutzen dürfen.
 

Neue Themen


Oben