Path2D zerlegen und Objekt drauf "laufen" lassen

h4nk

Mitglied
Hallo Leute, kurze Frage:
Wir versuchen ein Auto (Shape-Objekt) auf einem Pfad entlangfahren zu lassen. Das klappt soweit auch super, indem wir ein Path2D-Objekt mit dem PathIterator zerlegen, die entstandenen Punkte in einer Arraylist speichern und die Autoposition dann auf die der Pfadpunkte setzen (mit neu berechnetem Winkel).

So sieht das in Code aus:
Java:
// Erstellt den Pfad, auf dem gefahren werden sollen
Path2D path = new Path2D.Double();

// Anfang des Pfads
path.moveTo(100, 200);

// Form des Pfades wird bestimmt, eine Gerade gefolgt von einer Kurve
path.lineTo(100, 100); // Gerade
path.curveTo(100, 100, 100, 0, 0, 0); // Kurve


// Zerlegen des Pfades in Punkte, Points2D

// Zerlegt den Pfad in Punkte, um ihm folgen zu können. Argument flatness: Abstand der Punkte.
PathIterator pi = pathShape.getPathIterator(null, 0.1);

// Speichert die Punkte ins points-Array
while (!pi.isDone()) {
    double[] koordinaten = new double[6];

    switch (pi.currentSegment(koordinaten)) {
        case PathIterator.SEG_MOVETO:
            points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
            break;
        case PathIterator.SEG_LINETO:
            points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
            break;
    }
    pi.next();
}

Problem:
Unser Problem ist jetzt, dass anscheinend nur der Pfadbereich mit der Kurve zerlegt und abgefahren wird. Bei der Anfangsgerade teleportiert sich das Auto direkt vom Start- zum Endpunkt. Woran liegt das und wie können wir das beheben?

EDIT: Das Problem dürfte sein, dass Geraden aus Anfangs und Endpunkt gezeichnet werden und die Gerade somit vom PathIterator auch nur in die beiden zerlegt wird. Wie könnte man das umgehen. Die Punkte auf der Gerade "per Hand" also per Schleife selbst der Punkte-Arraylist hinzufügen?


Falls jemand das Ganze Programm testen will (nur eine Klasse "PathFollow" mit inneren Klassen):

Java:
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.Path2D;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class PathFollow {

    public static void main(String[] args) {
        new PathFollow();
    }

    // JFrame wird wird erstellt
    public PathFollow() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        private Shape pathShape;
        private List<Point2D> points;
        private Shape car;

        private double angle;
        private Point2D pos;
        private int index;

        protected static final double LAUFZEIT = 5000; // 5 seconds...

        private Long startTime;

        public TestPane() {
            // Erstellt den Pfad, auf dem gefahren werden sollen
            Path2D path = new Path2D.Double();

            // Anfang des Pfads
            path.moveTo(100, 200);

            // Form des Pfades wird bestimmt
            path.lineTo(100, 100);
            path.curveTo(100, 100, 100, 0, 0, 0);

            pathShape = path;
            car = new Rectangle(0, 0, 10, 10);
            points = new ArrayList<>(25);

            // Zerlegt den Pfad in Punkte, um ihm folgen zu können. Argument flatness: Abstand der Punkte.
            PathIterator pi = pathShape.getPathIterator(null, 0.1);

            // Speichert die Punkte ins points-Array
            while (!pi.isDone()) {
                double[] koordinaten = new double[6];

                switch (pi.currentSegment(koordinaten)) {
                    case PathIterator.SEG_MOVETO:
                        points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
                        break;
                    case PathIterator.SEG_LINETO:
                        points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
                        break;
                }
                pi.next();
            }

            // Erstellt einen Timer, der aufhört, wenn die vorgegebene Laufzeit erreicht wurde (hier 5sek.)
            Timer timer = new Timer(40, new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {

                    // Holt aktuelle Zeit in ms
                    if (startTime == null) {
                        startTime = System.currentTimeMillis();
                    }

                    // Spielzeit ist die aktuelle Zeit minus die Startzeit
                    long playTime = System.currentTimeMillis() - startTime;

                    // Fortschritt: 0.0 - 1.0, Prozent. Stoppt, wenn eingestellte Laufzeit erreicht ist.
                    double progress = playTime / LAUFZEIT;
                    if (progress >= 1.0) {
                        progress = 1d;
                        ((Timer) e.getSource()).stop();
                    }

                    // i dont even fucking know
                    int index = Math.min(   Math.max(0, (int) (points.size() * progress))   ,    points.size() - 1  );

                    // Index gibt an, wo sich das Auto gerade befindet. Außerdem wird der Winkel zwischen dem aktuellen Punkt und dem nächsten berechnet.
                    pos = points.get(index);
                    if (index < points.size() - 1) {
                        angle = angleTo(pos, points.get(index + 1));
                    }
                    System.out.println("Index: " + index + " , Winkel: " + angle);
                    repaint();
                }
            });
            timer.start();
        }

        // Größe des JPanels. 200x200 Pixel.
        @Override
        public Dimension getPreferredSize() {
            return new Dimension(200, 200);
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D) g.create();

            // Zeichnet Pfad, kann auch weggelassen werden
            g2d.draw(pathShape);

            // Objekt, mit dem das Auto gedreht wird
            AffineTransform affTransform = new AffineTransform();

            if (pos != null) {
                // Speichert Grenzen/Größe des Autos als Rechteck ab
                Rectangle bounds = car.getBounds();
                // AffineTransform-Objekt soll rotieren um den Ursprung, deshalb: bounds.width / 2. (Legt quasi Aufgabe fest)
                affTransform.rotate(angle, (bounds.width / 2), (bounds.width / 2));

                // Constructs a Path2D object from an Shape object, transformed by an AffineTransform object. (übergibt das Auto und die Transformation, die darauf angewendet werden soll)
                Path2D player = new Path2D.Double(car, affTransform);

                // Versetzt den Koordinatenursprung
                g2d.translate(pos.getX() - (bounds.width / 2), pos.getY() - (bounds.height / 2));
                g2d.draw(player);

            }
            g2d.dispose();
        }

        // Zu Bogenmaß
        protected double angleTo(Point2D from, Point2D to) {
            double angle = Math.atan2(to.getY() - from.getY(), to.getX() - from.getX());
            return angle;
        }
    }
}
 
Zuletzt bearbeitet:
X

Xyz1

Gast
Nur mal schnell skizziert:
Der Abstand zwei Punkte: sqrt((x-x)^2+(y-y)^2)
Das Gefährt müsste sich jetzt umgekehrt proportional schnell zum Abstand des nächsten Punkts bewegen.
 

h4nk

Mitglied
Danke, für die Rückmeldung! Leider verstehe ich nicht ganz, wie das im Bezug auf das Problem, dass Geraden nur in zwei Punkte zerlegt werden, weiterhilft. Könntest du das etwas ausführen?
 
X

Xyz1

Gast
Du hast Geraden und Kurven als Geraden gespeichert. Du musst alle Geraden nochmal zerlegen in gleichlange Teilstücke. Darauf kann sich dann dein Objekt bewegen. Toll wärs, wenn alle Geraden gleichlang der kürzesten Gerade sind. Dann bewegt sich das Objekt gleichschnell über alle Geraden.
 
X

Xyz1

Gast
Moin, hatte etwas Zeit, mir das anzuschauen.

Also erst mal Flatness:
PathIterator pi = pathShape.getPathIterator(null, 0.1);
"flatness - the maximum distance that the line segments used to approximate the curved segments are allowed to deviate from any point on the original curve"
https://stackoverflow.com/questions...-what-flattnes-parameter-does-in-pathiterator

Ergebnis: Die Angabe 0.1 hat leider keinen Effekt. :( (Sonst wärs ja alles ganz einfach).

Dann hab ich aus Line einfach mal auch Curve gemacht:
Java:
            // Form des Pfades wird bestimmt
            path.curveTo(102, 200, 101, 150, 100, 100); // hier ne Änderung
            path.curveTo(100, 100, 100, 0, 0, 0);

Das Objekt bewegt sich nicht ganz so schnell, ist aber mehr ein Hack (also ne Behelfslösung):

ani1.gif

Toll wärs:
Java:
            // Speichert die Punkte ins points-Array
            while (!pi.isDone()) {
                double[] koordinaten = new double[6];

                switch (pi.currentSegment(koordinaten)) {
                    case PathIterator.SEG_MOVETO:
                        points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
                        break;
                    case PathIterator.SEG_LINETO:
                        points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
                        break;
                }
                pi.next();
            }

Hier müsstest du ein paar Berechnungen vornehmen - und zusätzliche Punkte in points speichern. Also nochmal etwas zerstückeln.

Andere Möglichkeit seh ich gerad nicht. :(
 
X

Xyz1

Gast
Ich habs mal zerstückelt/zerlegt für Dich:
Java:
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.Path2D;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class PathFollow {

    public static void main(String[] args) {
        new PathFollow();
    }

    // JFrame wird wird erstellt
    public PathFollow() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        private Shape pathShape;
        private List<Point2D> points;
        private Shape car;

        private double angle;
        private Point2D pos;
        private int index;

        protected static final double LAUFZEIT = 5000; // 5 seconds...

        private Long startTime;

        public TestPane() {
            // Erstellt den Pfad, auf dem gefahren werden sollen
            Path2D path = new Path2D.Double();

            // Anfang des Pfads
            path.moveTo(100, 200);

            // Form des Pfades wird bestimmt
            path.lineTo(100, 100);
            path.curveTo(100, 100, 100, 0, 0, 0);

            pathShape = path;
            car = new Rectangle(0, 0, 10, 10);
            points = new ArrayList<>(25);

            // Zerlegt den Pfad in Punkte, um ihm folgen zu können. Argument flatness: Abstand der Punkte.
            PathIterator pi = pathShape.getPathIterator(null, 0.1);

            // Speichert die Punkte ins points-Array
            while (!pi.isDone()) {
                double[] koordinaten = new double[6];

                switch (pi.currentSegment(koordinaten)) {
                    case PathIterator.SEG_MOVETO:
                        points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
                        break;
                    case PathIterator.SEG_LINETO:
                        Point2D p1 = points.get(points.size() - 1);
                        Point2D p2 = new Point2D.Double(koordinaten[0], koordinaten[1]);
                        double d = p1.distance(p2);
                        double i = d / 0.5;
                        for (int j = 0; j < i; j++) {
                            Point2D p3 = new Point2D.Double(p1.getX() + (j / i) * (p2.getX() - p1.getX()), p1.getY() + (j / i) * (p2.getY() - p1.getY()));
                            points.add(p3);
                        }
                        break;
                }
                pi.next();
            }

            // Erstellt einen Timer, der aufhört, wenn die vorgegebene Laufzeit erreicht wurde (hier 5sek.)
            Timer timer = new Timer(40, new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {

                    // Holt aktuelle Zeit in ms
                    if (startTime == null) {
                        startTime = System.currentTimeMillis();
                    }

                    // Spielzeit ist die aktuelle Zeit minus die Startzeit
                    long playTime = System.currentTimeMillis() - startTime;

                    // Fortschritt: 0.0 - 1.0, Prozent. Stoppt, wenn eingestellte Laufzeit erreicht ist.
                    double progress = playTime / LAUFZEIT;
                    if (progress >= 1.0) {
                        progress = 1d;
                        ((Timer) e.getSource()).stop();
                    }

                    // i dont even fucking know
                    int index = Math.min(Math.max(0, (int) (points.size() * progress)), points.size() - 1);

                    // Index gibt an, wo sich das Auto gerade befindet. Außerdem wird der Winkel zwischen dem aktuellen Punkt und dem nächsten berechnet.
                    pos = points.get(index);
                    if (index < points.size() - 1) {
                        angle = angleTo(pos, points.get(index + 1));
                    }
                    System.out.println("Index: " + index + " , Winkel: " + angle);
                    repaint();
                }
            });
            timer.start();
        }

        // Größe des JPanels. 200x200 Pixel.
        @Override
        public Dimension getPreferredSize() {
            return new Dimension(200, 200);
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D) g.create();

            // Zeichnet Pfad, kann auch weggelassen werden
            g2d.draw(pathShape);

            // Objekt, mit dem das Auto gedreht wird
            AffineTransform affTransform = new AffineTransform();

            if (pos != null) {
                // Speichert Grenzen/Größe des Autos als Rechteck ab
                Rectangle bounds = car.getBounds();
                // AffineTransform-Objekt soll rotieren um den Ursprung, deshalb: bounds.width / 2. (Legt quasi Aufgabe fest)
                affTransform.rotate(angle, (bounds.width / 2), (bounds.width / 2));

                // Constructs a Path2D object from an Shape object, transformed by an AffineTransform object. (übergibt das Auto und die Transformation, die darauf angewendet werden soll)
                Path2D player = new Path2D.Double(car, affTransform);

                // Versetzt den Koordinatenursprung
                g2d.translate(pos.getX() - (bounds.width / 2), pos.getY() - (bounds.height / 2));
                g2d.draw(player);

            }
            g2d.dispose();
        }

        // Zu Bogenmaß
        protected double angleTo(Point2D from, Point2D to) {
            double angle = Math.atan2(to.getY() - from.getY(), to.getX() - from.getX());
            return angle;
        }
    }
}

ani2.gif

Das Objekt/Gefährt bewegt sich jetzt gleichschnell über die gesamte Strecke.
 

h4nk

Mitglied
Konnte erst heute wieder reingucken, sorry. Vielen vielen Danke für die Mühe! Ich bin gestern auch zu einer Lösung gekommen, bei der das Auto sich allerdings in der Kurve langsamer bewegt. Das ist aber durchaus ein Vorteil, da realitätsnah. Im Grunde habe ich einfach eine Methode geschrieben, die den Start und Endpunkt einer Geraden bekommt und dann die Zwischenpunkte errechnet plus abspeichert. Das funktionierte vor allem so einfach, weil die Linien immer gerade sind, sprich entweder beide x-Werte oder beide y-Werte der Punkte sind gleich.

Sah dann so aus (kann man natürlich sauberer machen und muss noch etwas angepasst werden, aber funktioniert erstmal für den Fall:D):

Java:
public void generatePointsOnLine(Point2D higher, Point2D lower) {
    int anzahl = 100;
    double difference;
    if (higher.getX() == lower.getX()) {
        difference = higher.getY() - lower.getY();
        for (int i = 0; i < anzahl; i++) {
            points.add(new Point2D.Double(higher.getX(), higher.getY() - ((difference * i / anzahl))));
        }
    } else if (higher.getY() == lower.getY()) {
        difference = higher.getX() - lower.getX();
        for (int i = 0; i < anzahl; i++) {
            points.add(new Point2D.Double(higher.getX() - (difference * i / anzahl), higher.getY()));
        }
}
 
X

Xyz1

Gast
Ok, du hast es in eine Methode gesteckt.
Du hast ja einen Standvektor und Aufvektor, dabei würde auch bleiben.
Und dann ist da ja noch ein leichtes Schlingern des Fahrzeugs. Ist das gewollt?
Ich weiß, echt-runde Bogen schwer...
Nebenbei: Im zweiten Gif hatte ich die leicht-magnetische Kraft erst von rechts (unten), dann von links noch drin, deswegen ist die Linie nicht ganz gerade. Spielt aber keine Rolle.
Das schöne ist ja, mit dem leicht verstecken Verfahren, lassen sich ALLE beliebigen herstellen. Also alle Muster Formen Figuren die man sich vorstellen kann.^^ Insofern hast du da mächtiges Werkzeug.
 
X

Xyz1

Gast
Du hast doch immer noch Standvektor und Aufvektor. Auch wenn das nicht ganz die korrekte Bezeichnung ist. Dabei solltest du es auch belassen, bei der Rechnung. So bewegen sich zB auch Flugzeuge im 3D-Raum - wenn sie entlang einer Geraden geradeaus fliegen... Dann ist Kollisionsberechnung und so ein Spaß auch kein Problem - wenn sie windschief sind.
Also durch die Berechnung mit Standvektor und Aufvektor kannst du dass modular gestalten - und deine Kurve könnte in 2D, 3D, 4D,... sein:
Java:
                        Point2D p1 = points.get(points.size() - 1);
                        Point2D p2 = new Point2D.Double(koordinaten[0], koordinaten[1]);
                        double d = p1.distance(p2);
                        double i = d / 0.5;
                        for (int j = 0; j < i; j++) {
                            Point2D p3 = new Point2D.Double(p1.getX() + (j / i) * (p2.getX() - p1.getX()), p1.getY() + (j / i) * (p2.getY() - p1.getY()));
                            points.add(p3);
                        }

0.5 ist allerdings Nonsens... Setze einen "guten" Wert dafür ein. Ein passender/geeigneter Wert könnte zB sein: 1.42. ;)

Hö?!?! Wie ist er da denn drauf gestoßen? Das ist einfach sqrt(2) aufgerundet. :)
Good luck, Best wishes
 
X

Xyz1

Gast
Bearbeitung: Aber iwo muss da noch etwas anders:
Code:
d = dist...
i = d / 1.42
j = d / i
for k ...
  k*i*(...)
  ...

Das war vorerst etwas nachlässig/schlampig glaub ich.
 
X

Xyz1

Gast
Sorry, immer noch nicht richtig, das ist der Uhrzeit geschuldet... So gehts:
Java:
            // Zerlegt den Pfad in Punkte, um ihm folgen zu können. Argument flatness: Abstand der Punkte.
            PathIterator pi = pathShape.getPathIterator(null, 0.1);

            // Speichert die Punkte ins points-Array
            while (!pi.isDone()) {
                double[] koordinaten = new double[6];

                switch (pi.currentSegment(koordinaten)) {
                    case PathIterator.SEG_MOVETO:
                        points.add(new Point2D.Double(koordinaten[0], koordinaten[1]));
                        break;
                    case PathIterator.SEG_LINETO:
                        Point2D p1 = points.get(points.size() - 1);
                        Point2D p2 = new Point2D.Double(koordinaten[0], koordinaten[1]);
                        double d = p1.distance(p2);
                        double i = d / 1.42;
                        // double j = d / i;
                        for (int k = 0; k < i; k++) {
                            Point2D p3 = new Point2D.Double(p1.getX() + k / i * (p2.getX() - p1.getX()), p1.getY() + k / i * (p2.getY() - p1.getY()));
                            points.add(p3);
                        }
                        break;
                }
                pi.next();
            }

            System.out.println("points.size() = " + points.size());

Dein Path wird dabei zB genau in 210 Punkte zerlegt - und mit 1.42 kann man jetzt etwas "experimentieren".

Also wenn nix weiter ist, dann ist das Thema jetzt fertig, sorry, dass ich 3mal gepostet hatte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E String zerlegen aus args Java Basics - Anfänger-Themen 1
I Zerlegen von String Java Basics - Anfänger-Themen 3
J Pfad zerlegen Java Basics - Anfänger-Themen 2
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
nonickatall Input/Output Zeichenkette in Array zerlegen Java Basics - Anfänger-Themen 2
O Best Practice Datei-Pfad zerlegen Java Basics - Anfänger-Themen 4
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
M Erste Schritte Zeichenkette zerlegen Java Basics - Anfänger-Themen 5
X Wie kann ich Zahlen in einzelne Zifferne zerlegen? Java Basics - Anfänger-Themen 3
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
M String zerlegen anhand anderer String Java Basics - Anfänger-Themen 6
Orkanson Methoden String in Wörter zerlegen und Endungen der Wörter überprüfen. Java Basics - Anfänger-Themen 4
Shizmo 2dim Objekt in 1dim zerlegen? Java Basics - Anfänger-Themen 13
Silvascus String zerlegen Java Basics - Anfänger-Themen 6
H String zerlegen Java Basics - Anfänger-Themen 16
B Zahlen zerlegen und verwenden Java Basics - Anfänger-Themen 2
I String gezielt zerlegen Java Basics - Anfänger-Themen 5
L Zeichenkette zerlegen Java Basics - Anfänger-Themen 4
D String zerlegen Java Basics - Anfänger-Themen 2
B Best Practice JSON Datei zerlegen Java Basics - Anfänger-Themen 1
H String mit Leerzeichen in Variablen zerlegen Java Basics - Anfänger-Themen 4
F Erste Schritte Pattern zum Zerlegen von selbstdefinierten Dateinamen Java Basics - Anfänger-Themen 7
B String zerlegen Java Basics - Anfänger-Themen 25
T String zerlegen Java Basics - Anfänger-Themen 15
K Bestimmten String zerlegen Java Basics - Anfänger-Themen 12
L Zertifikat Subject DN zerlegen Java Basics - Anfänger-Themen 6
W Zahl/Wort in ein Array zerlegen Java Basics - Anfänger-Themen 6
H String zerlegen in einzelne Buchstaben (char)?? Java Basics - Anfänger-Themen 7
M String an bestimmten Stellen zerlegen Java Basics - Anfänger-Themen 12
M Integer.parseInt String zerlegen Java Basics - Anfänger-Themen 6
H Long (64Bit) in 2 int (32Bit) zerlegen Java Basics - Anfänger-Themen 2
I String ohne Zeichen zerlegen lassen Java Basics - Anfänger-Themen 5
T Set in 2 gleichgroße Teile zerlegen Java Basics - Anfänger-Themen 14
A Zahl zerlegen Java Basics - Anfänger-Themen 3
G String zerlegen? Java Basics - Anfänger-Themen 2
T String zerlegen? Java Basics - Anfänger-Themen 25
J Strings zerlegen Java Basics - Anfänger-Themen 15
G String zerlegen Java Basics - Anfänger-Themen 14
M String zerlegen Java Basics - Anfänger-Themen 6
O String mit split zerlegen Java Basics - Anfänger-Themen 6
J String zerlegen mit mehreren trennzeichen Java Basics - Anfänger-Themen 3
L zahl in einzelzahlen zerlegen Java Basics - Anfänger-Themen 5
G int-Wert in seine byte-Werte zerlegen Java Basics - Anfänger-Themen 3
M Strings zerlegen und Schlüsselwörter finden Java Basics - Anfänger-Themen 7
B ASCII-Datei einlesen und zerlegen Java Basics - Anfänger-Themen 5
Dilandau string intelligent zerlegen Java Basics - Anfänger-Themen 7
G Wie eine Int Zahl in die einzelnen Ziffern zerlegen? Java Basics - Anfänger-Themen 6
S Zeichenkette zerlegen? Java Basics - Anfänger-Themen 4
G string zerlegen? Java Basics - Anfänger-Themen 3
ven000m Zahl zerlegen Java Basics - Anfänger-Themen 8
frau-u Playlist einlesen, zerlegen und neu sortieren? Java Basics - Anfänger-Themen 3
K Programm in Klassen/Objekte zerlegen - wie? Java Basics - Anfänger-Themen 3
N String zerlegen und auf mehreren Variablen zuweisen Java Basics - Anfänger-Themen 3
B Tastatur eingaben abfragen und dann in Argumente zerlegen..? Java Basics - Anfänger-Themen 8
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben