Uni-Projekt Koordinatensystem

Hey liebe Java Freunde,

in meinem Studiengang gibt es dieses Semester ein projektorientiertes Arbeiten mit dem Frauenhofer Institut. Ziel des Projektes ist ein Java-Applet zu erschaffen mit einem variablem Koordinatensystem, also das sich den Werten anpasst. Dazu sollen innerhalb des Koordinatensystems punkte aus einer HTML Datei ausgelesen werden, und diese dann im Koordinatensystem verbunden. Leider bin ich ein absoluter Taugenichts was Java angeht. Ich habe es geschafft ein Koordinatensystem zu zeichnen. Für die Punkte wäre eine For-Schleife glaube ich nicht verkehrt die den ersten wert als Min setzt und die folgenden vergleicht und dann einen Max-Wert gibt. Das ist allerdings eine reine Phantasie von mir, und so wäre es vielleicht nicht so schlecht, nur habe ich nicht das Können so etwas umzusetzen.

    import java.awt.GridLayout;  
    import javax.swing.JApplet;  
    import javax.swing.JButton;  
    import javax.swing.JTextField;  
    import java.awt.*;
     
    public class ThirdApplet extends java.applet.Applet {
     
    public void init() { 
     //Hintergrund Weiß 
     setBackground (Color.white); }
     
    public void paint (Graphics g ) {
       float x, y;
       int xnorm,ynorm, i;
     
       // Achsen zeichnen 
     
     
     
      // Vordergrundfarbe schwarz für die Achsen 
      g.setColor (Color.black)  ;
     
     
      g.setColor (Color.gray )   ;
      // x-Achse zeichnen
      for (i = 100; i<=400; i += 50)
      g.drawLine (i, 50, i, 450);
     
      // y-Achse zeichnen 
      for ( i = 100; i<= 400; i+= 50)
      g.drawLine (50, i, 450, i);
     
     
     
     
     
      g.setColor (Color.black)  ;
     
      //x-Achse zeichnen (schon skaliert auf 500%)
      g.drawLine (0, 250, 500, 250);
      g.drawLine (0, 251, 500, 251);
     
      //Y-Achse zeichnen (schon skaliert auf 500%)
      g.drawLine (250, 0, 250, 500);
      g.drawLine (251, 0, 251, 500);```


```<html> 
        <body>  
 
    <applet code="ThirdApplet.class" width=600 height=600>
 
    <param name= "N1" value="10">
 
    <param name="x0" value="0,600000">
    <param name="x1" value="0,100000">
    <param name="x2" value="2,500000">
    <param name="x3" value="3,400000">
    <param name="x4" value="3,800000">
    <param name="x5" value="5,600000">
    <param name="x6" value="8,900000">
    <param name="x7" value="11,00000">
    <param name="x8" value="-37,00000">
    <param name="x9" value="0,600000">
 
 
    <param name="y0" value="0,000000">
    <param name="y1" value="0,125000"
    <param name="y2" value="0,250000">
    <param name="y3" value="0,375000">
    <param name="y4" value="0,500000">
    <param name="y5" value="0,625000">
    <param name="y6" value="0,750000">
    <param name="y7" value="0,875000">
    <param name="y8" value="1,000000">
    <param name="y9" value="0,000000">
    <applet
        </body>  
            </html>```

Das ist was ich bisher habe, nicht viel. Aber ich habs immerhin alleine hinbekommen. Für den Rest bin ich einfach nicht Java kompatibel, wenn mir jemand wirklich helfen könnte, außer als in anderen Foren wo man nur schreibt "Das musst du so machen" wäre das echt super. Ich bin völlig überfordert, verzweifelt und will dieses Projekt einfach nur bestehen. Wenn das hier klappt, geht ne Runde Bier auf jedenfall auf mich :). Zwei Wochen Zeit habe ich jetzt noch. Ich freue mich über jede Hilfe.

liebe grüße paddy

eine Aufgabe ist die Parameter aus HTML ins Applet einzulesen,
aus diesem Satz, auf den man kommen sollte, ergibt sich fast automatisch eine Suche wie ‚java applet parameter einlesen‘ für Suchmaschinen,
und schon wäre man dazu eine Ecke weiter

keine hohen Java-Kenntnisse, keine allgemein zu hohe Intelligenz dafür erforderlich, einfach nur nüchtern bearbeiten und sich darüber freuen das so einfach :wink:


was genau aus den Punkten werden soll ist mir noch nicht ganz klar,
aber z.B. das Eingelesene in Arrays/ Punkt-Objekten abzulegen, evtl. Minimum/ Maximum bestimmen ist einfache Grundlagenarbeit,

da kann man nun fast nichts zu sagen außer es fertig hinzuschreiben, und noch gar kein Code von dir dazu zu sehen, irgendwas musst du auch selber probieren

Tipp: mit normalen Java-Programm und Dummy-Daten leicher möglich als am Applet zu programmieren und das mühsam über HTML zu starten,
normales Java-Programm mit main-Methode, Entwicklungsumgebung zur Programmierung bekannt/ vorhanden?


Zeichnen ruhig genauso erstmal in Frame oder JFrame testen, falls dir das was sagt,

bei sowas im Gegensatz zu anderen besser nicht einfach drauf los programmieren, sondern durchaus nach Tutorials richten,
etwa Malen in AWT und Swing durcharbeiten,
AWT ist dem Applet ähnlich,

Swing ist ne Stufe höher, alles ein bisschen anders, dort nicht paint-Methode zu überschreiben sondern eine andere

[quote=Paddy]Das ist was ich bisher habe, nicht viel.[/quote]Aber man kann darauf aufbauen. Ist doch schon mal was.

[quote=Paddy;119611]wenn mir jemand wirklich helfen könnte,[/quote]Ich denke da bist Du hier richtig.

[quote=Paddy;119611]außer als in anderen Foren wo man nur schreibt “Das musst du so machen”[/quote]Naja, Deine Arbeit wird auch hier keiner für Dich machen.

[quote=Paddy;119611]Ich bin völlig überforder[/quote]Das wird Dir (wie uns allen) noch öfter im Leben so gehen. Das Beste ist dann die anstehende Arbeit zu strukturieren und in lösbare Einzelaufgaben zu zerlegen.

[quote=Paddy;119611]Für die Punkte wäre eine For-Schleife glaube ich nicht verkehrt[/quote]Du brauchst sogar mehrere.
Die erste ist für das Einlesen der Punkte fällig. Hast Du diesschon gelesen? Damit kannst Du ganz Billig erstmal den Parameter N1 einlesen, der wohl die Anzahl der Punkte beschreibt.

Dann solltest Du die x- und y- Werte in der (ersten) Schleife einlesen und in getrennten Listebn ablegen.for (int i = =,i<n1;i++) xValues.add(getParameter("x"+i));Die Herausforderung besteht darin, dass Dezimalzahlen gegeben sind und in Java traditionell ein Punkt als Dezimaltrenner erwartet wird. Du solltest Dich also für die Umwandlung der Strings, als welche das Applet die Parameter übergeben bekommt mit der Klasse [JAPI]NumberFormat[/JAPI] befassen.

[quote=Paddy;119611]Für die Punkte wäre eine For-Schleife glaube ich nicht verkehrt die den ersten wert als Min setzt und die folgenden vergleicht und dann einen Max-Wert gibt.[/quote]Für die x-Werte kannst Du vielleich davon ausgehen, dass sie aufeinandrfolgend aufsteigend übergeben werden. Für die Y-Werte wird das aber sehr selten gelten. Schau die Dazu mal die Klasse [JAPI]Collections[/JAPI] an. Aber Vorsincht: Deren Methoden verändern die Übergebene Liste und dass würde die Verbindung zwischen X-und Y-Werten aufheben.
Das würde natürlich nicht passieren, wenn man eine Punkt-Klasse hätte, aber für diesen Hinweis bekomme ich wieder von den anderen hier einen Dämpfer… ;o)

Bis hier hin sollte es jetzt möglich sein, die Extremwerte zu ermitteln und auszugeben.

bye
TT

eine Aufgabe ist die Parameter aus HTML ins Applet einzulesen,
aus diesem Satz, auf den man kommen sollte, ergibt sich fast automatisch eine Suche wie ‚java applet parameter einlesen‘ für Suchmaschinen

hab ich versucht, hat mir leider nicht besonders weiter geholfen^^ deshalb frage ich hier.

was genau aus den Punkten werden soll ist mir noch nicht ganz klar

Die Punkte sollen ein Diagramm ergeben, da die Koordinaten für die Druck/Dichte Relation stehen. Metallpulver das in eine zylindrische Form gepresst wird.

Java ist für mich wie hieroglyphen lesen… Ich hab schon einiges probiert, aber richtig funktioniert hat es nie. Ich bin nicht blöde, aber ich komm darauf einfach nicht klar.

Aber Danke schonmal ich melde mich morgen nochmal^^ wenn ich es ausprobiert habe

Hast Du diesschon gelesen?

Habe ich, aber ich verstehe die Funktionsweise nicht, bzw. wie ich das einbinde damit der Paramter erfasst wird.

Klasse NumberFormat

Wie kann ich die Werte in Double werte umwandeln? Denn in double müsste es ja gehen oder?

Dann solltest Du die x- und y- Werte in der (ersten) Schleife einlesen und in getrennten Listebn ablegen.

Wie kann ich die Werte in den getrennten Listen ablegen?

Und was bewirkt die for Schleife

     xValues.add(getParameter("x"+i));

Suchmaschine Numberformat + double, evtl. noch parse dazu,
weil diese Dinger zwei Aufgaben haben: String zu double parsen und andersrum double zu String formatieren

Wie kann ich die Werte in den getrennten Listen ablegen?

Und was bewirkt die for Schleife

die Schleife bewirkt genau die Antwort auf die Frage, legt etwas in einer Liste ab…
(Liste ist nicht explizit genannt, aber List mit add()-Befehl schon einmal gesehen?)

wenn du keinerlei Verständnis für die grundlegendesten Befehle hast,
nichts selber suchst oder zu allem nur ‚verstehe ich nicht‘ sagst, ohne je eine konkrete Frage außer ‚ich Bahnhof, du bitte Lösung‘
dann wird dir keiner helfen können,

nicht auf diesem Niveau, erstmal 8 Wochen Java-Grundlagen,

natürlich kann einem alles zu hoch sein,
aber Java lernen (nicht gott-gleich, sondern für langsam zusammengebastelte einfache Programme) ist objektiv bekannt nicht viel mehr als Mittelschule Englisch/ Mathe,
das muss man einfach lernen können oder sonst halt kein entsprechendes Studium/ Nebenfach wählen

wenn du keinerlei Verständnis für die grundlegendesten Befehle hast,
nichts selber suchst oder zu allem nur ‚verstehe ich nicht‘ sagst, ohne je eine konkrete Frage außer ‚ich Bahnhof, du bitte Lösung‘
dann wird dir keiner helfen können,

Ich möchte natürlich nicht die Lösung präsentiert haben, und grundlegende Befehle verstehe ich ich größtenteils. Dennoch habe ich mich schon seit geraumer Zeit mit Java beschäftigt, auch durch das Studium bedingt. Aber es ist halt einfach nicht so einfach für mich, ich gebe mir mühe und habe auch schon ein haufen tutorials auf youtube angeschaut. Es wird auch besser, nur ist diese Aufgabe für mich so fast utopisch zu lösen. Ich möchte nur ein paar tipps und vielleicht Hilfestellungen. Dafür bin ich halt ein Wirtschaftscrack und kann halt Rechnungswesen/Bilanzierung besser als andere.

[quote=Paddy]Habe ich, aber ich verstehe die Funktionsweise nicht, bzw. wie ich das einbinde damit der Paramter erfasst wird.[/quote]Das interessante darin ist die Java-Klasse.public class AppletTakesParams extends JApplet { // hier wird von Applet geerbt wodurch Du dessen ParameterVerwaltung geschenkt bekommst. public void init() { final String inputStr = getParameter("paramStr"); // hier wird der Parameter <param name="paramStr" value="someString"/> gelesen final int inputInt = Integer.parseInt(getParameter("paramInt")); // // hier wird der Parameter <param name="paramInt" value="22"/> und gleich in einen int umgewandelt. // der Rest ist formal notwendig } }Ich hoffe, dies auf Deine Bedingungen anzupassen ist keine Herausforderung für Dich.

[quote=Paddy;119646]Wie kann ich die Werte in Double werte umwandeln?[/quote]Lies die API, die erklärt das recht ausführlich:
https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html

[quote=Paddy;119646]Denn in double müsste es ja gehen oder?[/quote] Was genau meinst Du?
Das Problem Komma/Punkt hat prinzipiell erst mal nichts mit dem Java-Datentyp zu tun, sondern nur mit der Konvertierung zwischen interner Zahlenrepräsentation im Programm und der menschenlesbaren.

[quote=Paddy;119646]Wie kann ich die Werte in den getrennten Listen ablegen?[/quote]Indem Du für jede Koordinate eine Liste mit entsprechendem Namen anlegst und die jeweiligen Werte dort hinein legst.
Muss ich Dir auch noch erklären wie man Variablen deklariert und ihnen Werte/Objekte zuweist?

[quote=Paddy;119646]Und was bewirkt die for Schleife[/quote]Die macht beispielhaft, was ich vorher schrieb. Leider hat sie Tippfehler:for (int i = 0; i<n1 ; i++) { xValues.add(getParameter("x"+i)); }
Zur grundsätzlichen Funktionsweise verweise ich Dich mal hier hin.
Zukünftig werde ich aber davon ausgehen, dass man mit 30 noch nicht zu alt ist um zu wissen, was Google ist…

Die speziellen Bezeichner hier sind:
[ul]
[li]n1 - der Wert aus dem AppletParameter N1 als int[/li][li]xValues - die Variable vom Typ [JAPI]List[/JAPI]<[JAPI]Double[/JAPI]> in dem ein das [JAPI]List[/JAPI]-Interface impementierendes Object, beispielsweise eine [JAPI]ArrayList[/JAPI] gespeichert ist.[/li][li].add() - eine vom [JAPI]List[/JAPI]-Interface zugesicherte Methode.[/li][li]getParameter() die ererbte Methode aus der Klasse Applet, mit der man sich den Wert eines namentlich bekannten Parameters als String-Objekt holen kann. [/li]Achtung! Hier fehlt noch die Umwandlung in einen Zahlentyp.
[li]"x"der für alle x-Werte gleiche Teil des Parameternames[/li][li]"x"+i - Zusammenführung (concatenation) des Prefixes mit dem aktuellen Wert der Schleifen-Laufvariablen. Daraus wird der Name des AppletParameters, der angefordert wird. Das ist für jeden Durchlauf der Schleife ein anderer.[/li][/ul]
Im Prinzip musst Du für das Erfassen der Y-Werte die zweite Zeile kopieren und alle x durch y ersetzen (aber nur in der Kopie).

bye
TT

und beantwortest du auch in Foren ‚wie berechne ich den Barwert Bahnhof Bahnhof??‘ ohne auf wichtige sauber nachlesbare Grundlagen zu verweisen?
würdest du nicht auf Grundwissen von Addition & Co., Verständnis für Brüche usw. pochen?

das ist keine Frage von Vor-/ Geheimclubwissen oder Intelligenz, jeder könnte das in einer Stunde nachlesen, nichts dabei,
es wird ja nicht das Finanzgenie gefordert, ohne Hilfestellung eine Griechenland-Lösung zu formulieren,
sondern einfache Probleme, deren Schritte/ Rechen- oder Java-Befehle sich nahezu automatisch ergeben, wenn auch nur ein wenig Grundlagen bekannt

du musst programmieren, Dinge kennenlernen, nachlesen! suchen!, konkrete Fragen stellen,

als ein Punkt etwa hat sich anscheinend gerade herauskristalisiert, mit einer Liste umzugehen,
wie sind deine Kenntnisse dazu?

programmiere testweise ein separates einfaches main-Programm,
lege zwei Variablen vom Typ String an (vielleicht für sich schon schwer?), füge sie in eine Liste ein,
gib am Ende die Size der Liste in die Konsole aus,
vielleicht völlig trivial, vielleicht erstmal wichtige Lern-Aufgabe, niemand weiß es bisher…

Programmieren ist in den meisten Fällen ein Iterativer (Schrittweiser) Prozess.
Gehe daher mal folgende Aufgaben durch um die einzelnen Schritte die zur Lösung deiner Aufgabe benötigt werden zu erlernen oder zumindest mal zu zeigen ab wann es hakt.

Erstelle ein neues Applet für jeden dieser Schritte

  1. ein Applet das den Text “Hallo Welt” anzeigt.
  2. ein Applet das den Parameter “name” mit dem Wert “Paddy” bekommt und dann den Text “Hallo Paddy” ausgibt. (Parameter auslesen)
  3. ein Applet das zwei Parameter a und b hat, die jeweils Zahlen sind (z.B. 3 und 4) und dann einfach den Text generiert und als Applet augibt 3 + 4 = 7
  4. packe die Schritte 1 - 3 in ein Applet das alles kann.

Wenn dabei Probleme sind, dann zeig was du erreicht hast.
Die Schritte sind notwendig um das gewünschte Ziel zu erreichen und sollten keine Probleme bereiten.

Alles andere macht sonst wenig Sinn.

Danke für die nette Hilfe, ich werde mal ein bisschen rumprobieren, aber ich sehe meine Fähigkeiten sind einfach im jetzigen Zeitpunkt nicht ausgereift für sowas und in zwei Wochen Java lernen um dieses Projekt zu schaffen mit anderen Klausuren zusammen ist nicht machbar.

[quote=SlaterB]und beantwortest du auch in Foren ‘wie berechne ich den Barwert Bahnhof Bahnhof??’ ohne auf wichtige sauber nachlesbare Grundlagen zu verweisen?
würdest du nicht auf Grundwissen von Addition & Co., Verständnis für Brüche usw. pochen?[/quote]

Bei Rewe ist das anders, da gibt es Regeln wie du erkannt hast, die kennt jeder. Jeder weiß wie man addiert oder Subtrahiert oder mit Brüchen umgeht. In Java musst du dir das erst alles erarbeiten, aber nicht jeder kann dir dabei helfen. Ich würde am liebsten auch meinen besten Kumpel fragen wie er das progammieren würde, aber er hat keine Ahnung von Java. Mathe bekommst du in der Schule beigebracht. Ich habe erst seit nem halben Jahr Informatik. Ich kann den blöden Hamstersimulator, aber ich bekomme Java einfach nicht alles hin.

Sieh es ein: das was du verstehst ist im Moment leider zu wenig

Beschäftigt - wie denn? Aufgaben von Komilitonen kopiert - ich vermute, du hast noch nie ein größeres Java-Programm selbst geschrieben (inkl. Debugging, Fehlersuche, Goolge)

Völlig verkehrt, durch das Anschauen von youtube-Videos kann man nicht programmieren lernen.

Sieht so aus, als ob du bei den Grundlagen anfangen müsstest: Java 101

Durcharbeiten heißt dabei erst einmal tippen, Beispiele ausprobieren etc: das geht nicht ad hoc in einer Woche

Sinnlos bei einer utopischen Aufgabe

Ein schwacher Trost.

Sehe ich auch so: wenn du dich um Java nicht rummogeln kannst, dann musst du das tatsächlich mal lernen.

Nur mal so nebenbei: wie viele Programmzeilen hast du denn schon selbständig geschrieben, so richtige Java-Quelltexte meine ich?

50.000 (Geschäftslogik)-Programmzeilen wird er sicher als Neueinsteiger noch nicht geschrieben habn. :wink:

I really like your writing style, excellent info, regards for putting up :D.