Beiträge von Steff100

    Klasse: java.awt.Frame

    Wenn diese Klasse aktualisiert wird (in meinem Fall das Fenster mit der Maus vergrößert, verkleinert, maximiert, ...), möchte ich einige Codezeilen ausführen lassen. Hierbei möchte ich in die Methode den Code einfügen, in welcher die Aktualisierung aufgerufen wird, weiß jedoch leider nicht welche Methode dies ist. Habe bereits Einige probiert, jedoch die Richtige nicht gefunden.

    Welche Methode muss ich verwenden, um die Aktualisierung abzufangen?? Die Oberklassen habe ich berücksichtig.

    In einem Programm habe ich eine abstrakte Oberklasse und mehrere Unterklassen, die von der abstrakten Oberklasse erben:

    Code
    public abstract class Oberklasse { ... }
    public class Unterklasse1 extends Oberklasse { ... }
    public class Unterklasse2 extends Oberklasse { ... }

    Nun ist mir leider der Fall eingetreten, dass ich Oberklassen-Infos von Unterklasse 1 zu Unterklasse 2 rüberschieben möchte. Wie kann ich nun von Unterklasse1 Elemente, welche in der Oberklasse definiert sind, zur Unterklasse2 rüberschieben?

    Weitere Schwierigkeit dabei:
    Die Info selbst ist ein Vector, welcher als generischen Parameter die Klasse selbst besitzt, dh.

    Code
    public class Unterklasse1 extends Oberklasse {
    ...
    Vector<Unterklasse1> v = new Vector<Unterklasse1>();
    ...
    }

    Hierbei ist das ganze mit generischen Typen in der Oberklasse definiert und verzwickt.

    Mir scheint dabei, dass ich mich mit der Vererbung hier verzettelt habe und dadurch das jetzt nicht mehr möglich ist, wie ich es mir vorstelle. Kommt davon, wenn man unvorhergesehene Teile einbauen muss.

    Tja, das hatte ich mir gedacht, dass ich hier wohl die Vererbung falsch verwende. Es ist halt hierbei das Problem, dass ich vom Typ des Vektors Methoden aufrufen möchte, die halt MyClass nicht besitzt und dadurch Probleme bereitet.

    Ich habe nun die Möglichkeit von Plantschkuh! hergenommen und die vererbende Klasse mit einem generischen Parameter versehen. Sieht jetzt folgendermaßen aus:

    Hierbei muss ich leider trotzdem einige Variablen casten, welche nicht überprüft werden, aber grundsätzlich wäre eine Vererbung um ursprünglichen Design nicht vorgesehen gewesen. Diese ergab sich leider in der Entwicklung der zusätzlichen Wünsche des Auftraggebers.

    Für OOP würd ich vermutlich jetzt vielleicht mehr, aber immer noch 100Pkt. fürs Bsp bekommen. ;) Würd mich trotzdem interessieren, was ihr von diesem Konstrukt haltet.

    Ich bin aber immer noch der Meinung, dass man wenn möglich ganz auf Vererbung verzichten sollte.

    Das würde halt einen Zusatz von mehreren 100 Zeilen Code pro Klasse bedeutet, der 2 bis mehrmals kopiert werden müsste. Genau das wollte ich damit verhindern.

    Ich habe eine abstrakte Klasse, wo es einen Vector mit der eigenen Klasse gibt:

    Da die Klasse abstrakt ist, wird diese natürlich vererbt und somit verändert sich auch der Typ im Vektor zu der Klasse, die hierbei die Klasse erbt, dh:

    MyNewClass1 erbt von MyClass
    --> brauche --->
    Vector<MyClass> zu Vector<MyNewClass1>

    Hierbei habe ich versucht mit Wildcards zu arbeiten:

    Code
    Vector<? extends MyClass>

    jedoch kann ich mit diesen Wildcards nicht instanzieren. Wie kann ich hierbei mein Problem lösen??

    Wenn ich versuche bestimmte Bereiche von Canvas neu zu zeichnen, rufe ich repaint(int x, int y, int width, int height) auf, um nur den entsprechenden Bereich zu korrigieren. Hierbei korrigiere ich mehrere Bereiche hintereinandern.

    Jedoch führt er bei mehreren aufrufen von repaint(...) nicht alle aus. Wird hierbei nur ein Bereich neu gezeichnet, funktioniert dies einwandfrei. Ab 2 Bereichen ignoriert er manche Neuzeichnung.

    Zu erwähnen wäre, dass repaint() ohne Parameter funktioniert. Woran liegt es, dass er manche Bereiche einfach nicht neu zeichnen will?

    Bei folgendem Code ignoriert er den 1. Befehl:

    Code
    repaint(selectedNode.getPosition().x, selectedNode.getPosition().y, xNote, yNote);
    repaint(clickedNode.getPosition().x, clickedNode.getPosition().y, xNote, yNote);

    Hierbei wird alles korrekt dargestellt:

    Code
    repaint();

    Die Erstellung des Programms ist im Rahmen meines Projektpraktikums. Hierbei hat mein Auftraggeber bereits ein Java-Programm ueber einen Baumalgorithmus entworfen, welchen er nun graphisch darstellen möchte, dh einfach die Daten auf verschiedene Weise sich anzeigen lassen möchte.

    Allerdings irritiert mich, dass du "zB Binärbaum" geschrieben hast, ist der Baum etwa unbekannt?

    Es muss nicht umbedingt ein Binärbaum sein, sondern kann auch etwas total wirres sein. Es ist einfach ein Baum, wo ein Knoten ein oder mehrere Kinder hat.

    Graphviz wär da nicht so angebracht, da das Programm rein in JAVA laufen soll (laut Auftrag) und wohl der Professor auch nicht so begeistert wäre, wenn er andere Programme bei sich installieren müsste, um zu sehen, was ich da fabriziert habe.

    Wie gesagt wollte ich wissen, ob's in JAVA eine gute Möglichkeit gibt diesen zeichnen zu lassen. AWT ist bei mir bis jetzt die einzige Idee, die ich habe. Wie aufwändig die ist, weiß ich allerdings noch nicht (Anordnung, Platzbedarf, etc. ).

    Ich arbeite an einem Projekt und versuche hierbei Daten in Form eines Baumes darzustellen (zB. Binärbaum).

    Jedoch bin ich mir nicht sicher, auf welche Art es am effektivsten ist, diesen zu zeichnen. Ist eine AWT-Zeichnung sinnvoll? Oder diesen eventuell mit Container-Layouts darstellen?

    Würde mich über gute Ratschläge freuen.

    Dh wegen der anonymen Klasse funzt der ganze Zirkus nicht, da das System einen anderen Namen vergibt.

    Ich hoffe mal, das das mein Fehler ist. Thx, dass ihr euch meinen Code anschaut und euch die Mühe macht. :thumb:

    Wenn sämtliche Unterlagen erlaubt sind, sollte der Test nicht allzu schwierig werden. Ist außerdem ein Eingangstest und keine Prüfung. Wenn der so schwer wäre, würd ja kaum einer die LVA besuchen dürfen.

    PS: Vl sollte man den Thread jetzt zu Software-Eng verschieben. Würde mittlerweile besser dorthin passen.

    Ist die Eingangsphase am INSO und QSE gleich? Hat man unterschiedliche Sachen zu programmieren oder ist am INSO und QSE das selbe zu programmieren?

    Was ich bis jetzt gesehen habe, sind die Eingangsbsp ident, wobei man zwischen Flughafen, Arzt, ... wählen kann. Aber das ist schlussendlich auch schon egal, da alles gleich aufzubauen ist.

    Das ganze mit NetBeans zu bastln wird wohl nicht zählen.

    Sry, dass ich schon wieder hier reinspam!

    Hab jetzt das Problem, dass ich ein Java-Programm im Jar-File ausführbar machen möchte, das aber irgendwie nicht so ganz funktioniert.

    Habe hierbei auch das Manifest-File erstellt und eingefügt, funzt aber trotzdem nicht. Kann mir da vl jemand helfen?

    Files im Anhang!


    ausserdem wird es nicht nur um grafische anwendungen gehen.

    Das stimmt schon, dass die Syntax sich nicht ändern wird, wodurch ich mir es auch zutraue dies in einem gewissen Zeitraum selbst nachzulernen. Jedoch gibt es ein Eingangsbsp, das gelöst werden muss, wo eben auch SWING- oder AWT-Elemente notwendig sind.

    Was ich Suche sind Ressourcen-Tipps, wo ich mich einlesen kann. :wein:

    Ich bin jetzt im 4. Semester und habe sämtliche LVAs übers Programmieren gut gemeistert, komme aber jetzt zu Software-Engineering. Hier hab ich eine Lücke bezüglich meiner Programmierkenntnisse, da ich keine Ahnung habe, wie man ein Fenster, Buttons, Grafik, ... in Java programmiert.

    Damit ich aber da mithalten kann, möchte ich mich etwas in die Materie einlesen. Kann mir da jemand vl gute Materie zum Einlesen empfehlen, worin man genau diese Themen gut erläutert.

    LG STEFF

    PS: EPROG, ALGODAT, OOP, ... hab ich alles besucht und erfolgreich bestanden.

    Hab auf einmal das Problem, dass der Outlook Express bei mir nicht mehr funzt. Er schreibt, dass die MSOE.DLL nicht richtig initialisiert ist.

    Hab nun versucht den Mist irgendwie zu richten, mir fällt aber kein Rezept ein. Und neu aufsetzen möcht' ich wegen dem Schmarrn jetzt auch nicht.

    Weiß jemand vielleicht, was ich machen kann (ohne neu aufzusetzen)??

    DANKE im Voraus!

    Die aktuelle Version kann man immer komplett auf der HP downloaden. Wenn Update nicht funktionieren sollte, einfach die neue Komplettversion drüberinstallieren. Funktioniert ausgezeichnet (jedenfalls bei meinem Laptop).