geschlossenen Spline erzeugen

bronkowitz

Aktives Mitglied
Hallo Forum,

weiss jemand ob, bzw. wie es möglich ist einen geschlossenen Spline aus einer gegebenen Punktemenge zu erzeugen. Es müsste nicht unbedingt ein Spline sein, aber die Kurve soll glatt sein und durch die gegebenen Punkte gehen.
Anbei mein hilfloser und offensichtlich ungeeigneter Versuch einen Kreis anzunaehern, ich verwende als Kontrollpunkte für curveTo jeweils den vorigen und den folgenden Punkt.

Grüße,
bronkowitz

Java:
package spline;

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Arc2D;
import java.awt.geom.GeneralPath;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.border.Border;

public class Main {

    private static Hauptfenster hauptfenster;
    private static GeneralPath spline = new GeneralPath();
    private static Arc2D.Double kreis = new Arc2D.Double();
    private static double mitteX, mitteY, radius, delta, phi;
    private static double xprev, yprev, x, y, xnext, ynext;

    public static void main(String[] args) {

        hauptfenster = new Hauptfenster();
        hauptfenster.pack();
        hauptfenster.setVisible(true);
        hauptfenster.setExtendedState(Frame.MAXIMIZED_BOTH);

        mitteX = 300.0;
        mitteY = 300.0;
        radius = 100.0;

        // Aufloesung
        int n = 8;
        // Winkelinkrement
        delta = 2.0 * Math.PI / ((double)n);

        // Startpunkt
        spline.moveTo(mitteX + radius, mitteY);

        // erstes Segment
        xprev = radius + mitteX;
        yprev = mitteY;
        x = radius * Math.cos(delta) + mitteX;
        y = radius * Math.sin(delta) + mitteY;
        xnext = radius * Math.cos(2.0 * delta) + mitteX;
        ynext = radius * Math.sin(2.0 * delta) + mitteY;
        spline.curveTo(xprev, yprev, xnext, ynext, x, y);

        // weitere Segmente
        for (int i = 2; i < n - 1; i++)
        {
            xprev = x;
            yprev = y;
            x = xnext;
            y = ynext;
            phi = delta * (i + 1);
            xnext = radius * Math.cos(phi) + mitteX;
            ynext = radius * Math.sin(phi) + mitteY;
            spline.curveTo(xprev, yprev, xnext, ynext, x, y);
        }

        // letztes Segment
        xprev = x;
        yprev = y;
        x = xnext;
        y = ynext;
        xnext = radius + mitteX;
        ynext = mitteY;
        spline.curveTo(xprev, yprev, xnext, ynext, x, y);

        // Kurve schliessen
        spline.closePath();

        // Kreis zum Vergleich
        kreis = new Arc2D.Double(200.0, 200.0, 200.0, 200.0, 0.0, 360.0, Arc2D.OPEN);
    }

    public static void zeichnen(Graphics2D g){
        g.draw(spline);
        g.draw(kreis);
    }
}

class Hauptfenster extends JFrame {

    private Zeichenflaeche zeichenflaeche;

    public Hauptfenster(){
        super();

        zeichenflaeche = new Zeichenflaeche();
        add(zeichenflaeche);
        zeichenflaeche.setBackground(Color.WHITE);

        this.pack();
        validate();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        }

}

class Zeichenflaeche extends JPanel {

    public Zeichenflaeche(){
        super();
    }

    @Override
    public void paintComponent(Graphics g){
	super.paintComponent(g);
	Graphics2D g2 = (Graphics2D) g;
        Main.zeichnen(g2);
    }

}
 

SuperSeppel13

Bekanntes Mitglied
Also möglich ist das mit Sicherheit, du musst es allerdings selbst lösen (ich wüsste nicht, dass Java das von Haus aus kann). Ein paar Kollegen von mir haben sich mal mit kubischen Splines befasst - hat am Ende gut funtkioniert. Google ist dein Freund! Da findest du womöglich sogar komplette Algorithmen.
 

0x7F800000

Top Contributor
weiss jemand ob, bzw. wie es möglich ist einen geschlossenen Spline aus einer gegebenen Punktemenge zu erzeugen.
Das müsste eigentlich gehen, kubische Splines haben da genug frei wählbare Randbedingungen, um sie "zyklisch" hinzubiegen, also "ja".

Es müsste nicht unbedingt ein Spline sein, aber die Kurve soll glatt sein und durch die gegebenen Punkte gehen.
Ich habe mal vor kurzem sowas basteln müssen:
c1rail.jpg

Da ist im Prinzip so eine C1-Kurve zu sehen, auf der ein grüner Kreis wie auf Gleisen fährt, und um den sich noch ein blauer Punkt dreht (so als kleines Demo)

Die Kurve ist im wesentlichen ein Polygonzug, bei dem die ecken mit Quadratischen bezier-kurven (vom Path2D) abgerundet wurden. Klappt imho ganz gut, lässt sich super einfach kontrollieren, sieht gut aus, lässt sich physikalisch korrekt leicht behandeln (d.h. von den Teilen prallt alles schön ab, normalenvektoren sind einfach zu berechnen usw.)

Das ist einfach, aber solche Stunts mit "x" und "y" kannst du imho gleich vergessen, das wird nur Chaos.
=> Schreib dir eine ordentliche 2-bis-3D-Vektorklasse
=> Siehe zu, dass du diese Vektoren ordentlich normieren und sonstwie verwurschten kannst
=> les dir kurz was zu beziers-kurven durch (parametrisierung der quadratischen zu wissen reicht in dem fall völlig)

das müsste reichen.
Code posten werde ich nicht: das war ein ziemlich chaotisches projekt, ich bin erstmal froh, dass das endergebnis funktioniert, will's mir nicht so schnell wieder anguggen müssen.

Hoffentlich hilft's was^^ :bahnhof:
 

bronkowitz

Aktives Mitglied
erstmal danke für die Antworten. Ja, ich meinte eine direkte Lösung in JAVA, dass es prinzipiell geht ist mir schon bewusst.
@Andrey
die Idee mit Polygon+abgerundete Ecken finde ich gut, werde ich mir vielleicht klauen :) so hat man gleich die nötigen Steigungen für die Ränder und die Kurve ist stetig (brauche ich, da ich sie zweimal ableiten muss)
 

Marco13

Top Contributor
Joa, da kam dann doch noch unterwartet eine Antwort dazwischen... wie auch immer... hier ist eine Funktion, die einen Satz Punkte bekommt, und da so was glattgelutschtes durchlegt... Eigentlich müßte man die Kontrollpunkte ein bißchen "ausgefeilter" berechnen, damit sie "Immer" passen, aber ... vielleicht hilft's ja schon...
Java:
import java.awt.Color;
import java.awt.Frame;
import java.awt.*;
import java.awt.Graphics2D;
import java.awt.geom.*;
import java.awt.geom.GeneralPath;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.border.Border;
import java.util.List;
import java.util.*;

public class SplineTest {

    private static Hauptfenster hauptfenster;
    private static GeneralPath spline = new GeneralPath();
    private static Arc2D.Double kreis = new Arc2D.Double();


    private static GeneralPath createPath(List<Point2D.Double> points)
    {
        GeneralPath path = new GeneralPath();
        path.moveTo(points.get(0).getX(), points.get(0).getY());

        for (int i=0; i<points.size(); i++)
        {
            int i0 = i-1;
            if (i0 < 0)
            {
                i0 += points.size();
            }
            int i1 = i;
            int i2 = (i+1) % points.size();
            int i3 = (i+2) % points.size();

            Point2D.Double p0 = points.get(i0);
            Point2D.Double p1 = points.get(i1);
            Point2D.Double p2 = points.get(i2);
            Point2D.Double p3 = points.get(i3);

            double dx0 = p2.getX()-p0.getX();
            double dy0 = p2.getY()-p0.getY();

            double dx1 = p3.getX()-p1.getX();
            double dy1 = p3.getY()-p1.getY();

            double cp0x = p1.getX() + dx0 * 0.25;
            double cp0y = p1.getY() + dy0 * 0.25;

            double cp1x = p2.getX() - dx1 * 0.25;
            double cp1y = p2.getY() - dy1 * 0.25;

            path.curveTo(cp0x, cp0y, cp1x, cp1y, p2.getX(), p2.getY());
        }

        path.closePath();
        return path;
    }


    public static void main(String[] args) {

        hauptfenster = new Hauptfenster();
        hauptfenster.pack();
        hauptfenster.setVisible(true);
        hauptfenster.setSize(800,600);


        List<Point2D.Double> points = new ArrayList<Point2D.Double>();
        /*
        points.add(new Point2D.Double( 50, 50));
        points.add(new Point2D.Double(150, 50));
        points.add(new Point2D.Double(150,150));
        points.add(new Point2D.Double( 50,150));
        //*/


        //*
        double mitteX = 300.0;
        double mitteY = 300.0;
        double radius = 100.0;
        int n = 8;
        double x, y, xnext=0, ynext=0, delta;
        delta = 2.0 * Math.PI / ((double)n);
        spline.moveTo(mitteX + radius, mitteY);
        for (int i = 0; i < n; i++)
        {
            x = radius * Math.cos(delta * i) + mitteX;
            y = radius * Math.sin(delta * i) + mitteY;
            points.add(new Point2D.Double(x,y));
        }
        //*/


        spline = createPath(points);

        // Kreis zum Vergleich
        kreis = new Arc2D.Double(200.0, 200.0, 200.0, 200.0, 0.0, 360.0, Arc2D.OPEN);
    }

    public static void zeichnen(Graphics2D g)
    {
        g.setColor(Color.GRAY);
        g.draw(kreis);
        g.setColor(Color.RED);
        g.draw(spline);
    }
}

class Hauptfenster extends JFrame {

    private Zeichenflaeche zeichenflaeche;

    public Hauptfenster()
    {
        super();

        zeichenflaeche = new Zeichenflaeche();
        add(zeichenflaeche);
        zeichenflaeche.setBackground(Color.WHITE);

        this.pack();
        validate();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

}

class Zeichenflaeche extends JPanel
{

    public Zeichenflaeche()
    {
        super();
    }

    @Override
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        SplineTest.zeichnen(g2);
    }

}
 

bronkowitz

Aktives Mitglied
ja, das hilft schon, besten Dank auch! Wenn ich das richtig sehe schliesst du dann die Kurve mit einer Linie der Länge Null, weil ja bereits für jeden Punkt ein Spline existiert. Ich wusste nicht, dass das erlaubt ist.
 

Marco13

Top Contributor
Länge 0? Ähnaja...

Der Gedanke war (in Anlehnung an das angehängte Bild)

Für einen beliebigen Punkt will man eine "schöne" Kurve zum nächsten Punkt zeichnen. "Schön" ist die Kurve wenn man weiß wo man herkommt, und weiß, wo es nach dem nächsten Punkt weitergeht.

Wenn man also die 4 Punkte hat wie im Bild, und bei p1 anfangen will, dann holt man sich den vorigen und nächsten Punkt (p0 und p2) und berechnet deren Differenz (die lange hellgrüne Linie, dx0 und dy0 im Code). Diese Linie verwendet man, um den ersten Kontrollpunkt zu berechnen. Der liegt hier am Ende der kurzen hellgrünen Linie, die bei p1 startet. Zusätzlich schaut man, wie es am Endpunkt des zu zeichnenden Segments weitergehen soll. Dazu berechnet man die Differenz von p1 und p3, also die lange hellblaue Linie (dx1 und dy1 im Code). Daraus berechnet man den zweiten Kontrollpunkt. Der liegt am Ende der kurzen hellblauen Linie, die bei p2 startet. Damit hat man
- Den Startpunkt für das curveTo (p1)
- Den Ersten Kontrollpunkt (p1+kurze hellgrüne Linie)
- Den Zweiten Kontrollpunkt (p2+kurze hellblaue Linie)
- Den Endpunkt (p2)
Und das macht man für alle gegebenen Punkte....

Die kurzen Linienstücke sind so gesehen einfach die Tangenten an den Punkten, und es wird sichergestellt, dass die "reingehenden" Tangenten und die "rausgehenden" Tangenten die gleiche Richtung haben. Sie haben aber NICHT die gleiche Länge. Das könnte man, wie schon angedeutet, sicherstellen, indem man die Berechnung der Kontrollpunkte ausgefeilter macht (und nicht mit diesem willkürlich gewählten Faktor 0.25...)
 

Anhänge

  • SplineTest01.gif
    SplineTest01.gif
    2,1 KB · Aufrufe: 21

bronkowitz

Aktives Mitglied
mir ist halt nicht so ganz klar was closePath macht. Laut API zieht es ja eine "straight Line" (also auch keine Kurve) zum Ausgangspunkt und da die Schleife soviele Spline-Segmente erzeugt wie Punkte (i = 0..size-1) müsste closePath ja einen zuviel erzeugen.
Deinen Grundgedanken habe ich schon so verstanden, der erste Kontrollpunkt bestimmt die Eingangstangente (Punkt 1 - Kontrollpunkt 1), der zweite die Ausgangstangente (Punkt 2 - Kontrollpunkt 2). Dann müsste deren Länge doch aber eigentlich egal sein, es kommt ja nur auf die Steigung an (was aber nicht der Fall ist).
 

Marco13

Top Contributor
Ohja, das "closePath" ist in diesem Fall eigentlich nicht nötig: Der letzte Punkt liegt ja bereits an der geleichen Position wie der erste Punkt. Ich glaube, das closePath ist lediglich eine Art "flag". D.h. es fügt nicht wirklich neue Punkte ein, sondern sagt nur, wie der Übergang vom letzten Punkt zurück zum ersten "zu interpretieren" ist.

Ich muss aber zugeben, dass ich im Moment nicht weiß, welche Auswirkungen das "closePath" auf den Path als ganzes hat - also ob es (bei einem Path, wo der erste und der letzte Punkt gleich sind) überhaupt einen Unterschied macht, ob man das closePath nun hinschreibt oder nicht, oder um das NUR für's Zeichnen verwendet wird, wenn die Punkte eben NICHT gleich sind. Bei einem kurzen Blick auf den Code scheint das SEG_CLOSE eigentlich nur bei "append" und "getCurrentPoint" wirklich verwendet zu werden.... Das müßte man nochmal genauer nachprüfen...

Die Länge der Tangenten ist nicht egal. Die Länge der Tangente beschreibt - bildlich gesprochen - wie lange man beim Zeichnen "in diese Richtung schießt", bis man sich in Richtung des nächsten Punktes bewegt.

Hier ist mal ein schnell zusammengehacktes Beispiel, wo man durch Hoch- und Runterziehen der Maus diesen "smoothness"-Faktor (also die Länge der Tangenten) einstellen kann. Die Punkte und die Tangenten werden auch eingezeichnet, da sieht man den Zusammenhang recht deutlich...

Java:
// For [url=http://www.java-forum.org/java-basics-anfaenger-themen/]Java Basics - Anfänger Themen - java-forum.org[/url]
// 97197-geschlossenen-spline-erzeugen.html#post618077

import java.awt.Color;
import java.awt.Frame;
import java.awt.*;
import java.awt.Graphics2D;
import java.awt.geom.*;
import java.awt.event.*;
import java.awt.geom.GeneralPath;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.border.Border;
import java.util.List;
import java.util.*;

public class SplineTest2 {

    private static Hauptfenster hauptfenster;
    private static GeneralPath spline = new GeneralPath();
    private static Arc2D.Double kreis = new Arc2D.Double();
    private static List<Point2D.Double> points = new ArrayList<Point2D.Double>();

    public static double smoothness = 0.25;

    private static GeneralPath createPath(Graphics g, List<Point2D.Double> points)
    {
        GeneralPath path = new GeneralPath();
        if (points.size() == 0)
        {
            return path;
        }

        path.moveTo(points.get(0).getX(), points.get(0).getY());

        for (int i=0; i<points.size(); i++)
        {
            int i0 = i-1;
            if (i0 < 0)
            {
                i0 += points.size();
            }
            int i1 = i;
            int i2 = (i+1) % points.size();
            int i3 = (i+2) % points.size();

            Point2D.Double p0 = points.get(i0);
            Point2D.Double p1 = points.get(i1);
            Point2D.Double p2 = points.get(i2);
            Point2D.Double p3 = points.get(i3);

            double dx0 = p2.getX()-p0.getX();
            double dy0 = p2.getY()-p0.getY();

            double dx1 = p3.getX()-p1.getX();
            double dy1 = p3.getY()-p1.getY();

            double cp0x = p1.getX() + dx0 * smoothness;
            double cp0y = p1.getY() + dy0 * smoothness;

            double cp1x = p2.getX() - dx1 * smoothness;
            double cp1y = p2.getY() - dy1 * smoothness;

            path.curveTo(cp0x, cp0y, cp1x, cp1y, p2.getX(), p2.getY());

            g.setColor(Color.GRAY);
            g.drawLine((int)p1.getX(), (int)p1.getY(), (int)cp0x, (int)cp0y);
            g.drawLine((int)p2.getX(), (int)p2.getY(), (int)cp1x, (int)cp1y);
            g.setColor(Color.BLUE);
            g.drawOval((int)p1.getX()-1, (int)p1.getY()-1,3,3);
            g.drawString("Smoothness: "+smoothness, 10, 16);
        }
        path.closePath();
        return path;
    }


    public static void main(String[] args) {

        hauptfenster = new Hauptfenster();
        hauptfenster.pack();
        hauptfenster.setVisible(true);
        hauptfenster.setSize(800,600);


        points = new ArrayList<Point2D.Double>();
        //*
        points.add(new Point2D.Double( 50, 50));
        points.add(new Point2D.Double(150, 50));
        points.add(new Point2D.Double(150,150));
        points.add(new Point2D.Double( 50,150));
        //*/


        /*
        double mitteX = 300.0;
        double mitteY = 300.0;
        double radius = 100.0;
        int n = 8;
        double x, y, xnext=0, ynext=0, delta;
        delta = 2.0 * Math.PI / ((double)n);
        spline.moveTo(mitteX + radius, mitteY);
        for (int i = 0; i < n; i++)
        {
            x = radius * Math.cos(delta * i) + mitteX;
            y = radius * Math.sin(delta * i) + mitteY;
            points.add(new Point2D.Double(x,y));
        }
        //*/


        //spline = createPath(points);

        // Kreis zum Vergleich
        kreis = new Arc2D.Double(200.0, 200.0, 200.0, 200.0, 0.0, 360.0, Arc2D.OPEN);
    }

    public static void zeichnen(Graphics2D g)
    {
        g.setColor(Color.GRAY);
        g.draw(kreis);

        spline = createPath(g, points);

        g.setColor(Color.RED);
        g.draw(spline);
    }
}

class Hauptfenster extends JFrame {

    private Zeichenflaeche zeichenflaeche;

    public Hauptfenster()
    {
        super();

        zeichenflaeche = new Zeichenflaeche();
        add(zeichenflaeche);
        zeichenflaeche.setBackground(Color.WHITE);

        zeichenflaeche.addMouseMotionListener(new MouseMotionListener()
        {
            private Point prev = new Point();

            public void mouseMoved(MouseEvent e)
            {
                prev = e.getPoint();
            }

            public void mouseDragged(MouseEvent e)
            {
                double dy = prev.y - e.getY();
                prev = e.getPoint();
                SplineTest2.smoothness += dy * 0.001;
                zeichenflaeche.repaint();
            }
        });



        this.pack();
        validate();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

}

class Zeichenflaeche extends JPanel
{

    public Zeichenflaeche()
    {
        super();
    }

    @Override
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        SplineTest2.zeichnen(g2);
    }

}
 

bronkowitz

Aktives Mitglied
wow, das ist allerdings interessant! (hätte ich nen ganzen Tag gebraucht) Man kann über Ziehen mit der Maus die Krümmung zur Ecke werden lassen und darüber hinaus sogar umdrehen, so daß die Kurve dort eine Schleife beschreibt. Kann es sein, dass nicht die Tangente sondern die Krümmung an der Stelle über die Kontrollpunkte vorgegeben wird? Fragt sich nur wie das genau zahlenmässig zusammenhängt, bzw. dann müsste man auch jeweils 3 der vorgegebenen Punkte heranziehen. Werd ich mal versuchen herauszufinden.
 

Marco13

Top Contributor
In der Hoffnung, dass ich damit jetzt nicht irgendeinen Mathematiker zum Weinen bringe ;) : ""Die Länge der Tangente ist die Krümmung"". (Mit "Tangente" ist hier ja nicht die "echte" Tangente gemeint - die ist ja eine unendlich lange Linie. Hier ist mit "Tangente" ja die Strecke zwischen dem Punkt und dem Kontrollpunkt gemaint, die zwar ein Teil der Tangente ist, aber eben nicht die Tangente selbst...)

Da jetzt bitte nicht so drauf festnageln, ich müßte da nochmal genau nachsehen, aber es ist AFAIR so:
- Wenn diese beiden "Tangenten" (d.h. die Linien vom Punkt zum Kontrollpunkt hin) die gleiche Richtung haben, dann ist die Kurve dort C1-stetig
- Wenn die beiden "Tangenten" die gleiche Richtung UND die gleiche Länge haben, dann ist die Kurve dort C2-stetig

Es gibt im Netz wenn man nach sowas wie "Bezier Curve" und "Cubic Spline" und vielleicht "Casteljau Algorithm" und so sucht jede Menge Applets, wo man sich dieses Verhalten (also die Auswirkungen der Positionen der Kontrollpunkte) bei den verschiedenen Kurven-Arten schöner ansehen kann, als mit diesem schnell hingeschriebenen Beispiel... Kannst ja mal suchen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Objekte erzeugen Httprequest oder Httpclient Java Basics - Anfänger-Themen 3
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
S Erzeugen einer eindeutigen ID Java Basics - Anfänger-Themen 2
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
L Simples Spielfeld erzeugen Java Basics - Anfänger-Themen 1
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
S Mit nextGaussian() positive Zahlen erzeugen? Java Basics - Anfänger-Themen 39
S Array erzeugen mit verschiedener Verteilung Java Basics - Anfänger-Themen 11
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
K Methoden JTExtField mit Array erzeugen Java Basics - Anfänger-Themen 13
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
I TextField Array mit for Loop erzeugen Java Basics - Anfänger-Themen 4
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
J Eindeutige Nummer (8 stellig) erzeugen Java Basics - Anfänger-Themen 9
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
neerual Int-Felder erzeugen Java Basics - Anfänger-Themen 16
R Objekte zur Laufzeit in Schleife erzeugen und in ArrayList ablegen Java Basics - Anfänger-Themen 4
D Erste Schritte Random erzeugen Java Basics - Anfänger-Themen 28
P Objekt mit =new in Methode erzeugen Java Basics - Anfänger-Themen 4
L Threads Laufbild Erzeugen Problem mit Aktualisieren des JPanels Java Basics - Anfänger-Themen 2
J In Java einen Ton erzeugen Java Basics - Anfänger-Themen 8
C Array Muster erzeugen Java Basics - Anfänger-Themen 2
S Objekte "gegebenfalls" erzeugen Java Basics - Anfänger-Themen 5
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
R Baum erzeugen Java Basics - Anfänger-Themen 61
D Objekt per If erzeugen. Java Basics - Anfänger-Themen 11
J Bildschirmausgabe erzeugen Java Basics - Anfänger-Themen 30
B Beliebig viele Rechtecke erzeugen Java Basics - Anfänger-Themen 5
J Objekt mit Methodendruchlauf erzeugen Java Basics - Anfänger-Themen 1
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
P Erste Schritte [gelöst]Erzeugen einer Klasse aus der Klassenbibliothek Java Basics - Anfänger-Themen 4
C Int mit vorangestellten Nullen und maximal 4 stellen erzeugen. Java Basics - Anfänger-Themen 4
P Input/Output Objekte per Eingabe erzeugen Java Basics - Anfänger-Themen 1
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
U JNA: Strukturen erzeugen Java Basics - Anfänger-Themen 8
S Variablen Variable erzeugen und Array mit Variablen befüllen Java Basics - Anfänger-Themen 26
S Header- Datei erzeugen mit javah Java Basics - Anfänger-Themen 1
J Objekte zur Laufzeit erzeugen und direkt verwenden Java Basics - Anfänger-Themen 9
R Erste Schritte Schleife erzeugen (mit If Anweisung) Java Basics - Anfänger-Themen 3
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
M Zusatzzahlen in array erzeugen Java Basics - Anfänger-Themen 5
B Stützstellen (Vektor) erzeugen? Java Basics - Anfänger-Themen 8
Z Erste Schritte 9x9 Felder Erzeugen+Aufrufen Java Basics - Anfänger-Themen 1
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
J JLabels in schleife erzeugen mit verschiedenen namen? Java Basics - Anfänger-Themen 5
K JLabel zur Laufzeit dynamisch erzeugen Java Basics - Anfänger-Themen 7
F Input/Output Blocking file read erzeugen Java Basics - Anfänger-Themen 0
Thallius Klassen aus Classname programmatisch erzeugen. Wie geht das in java? Java Basics - Anfänger-Themen 5
B Zufallsdatum innerhalb eines bestimmten Bereiches erzeugen Java Basics - Anfänger-Themen 3
D JComboBox erzeugen Java Basics - Anfänger-Themen 1
J Erste Schritte Array dyn. erzeugen Java Basics - Anfänger-Themen 2
A OOP Objekte per Schleife erzeugen Java Basics - Anfänger-Themen 1
F Superklasse nochmals erzeugen? Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Variablen Variable zur Laufzeit erzeugen Java Basics - Anfänger-Themen 3
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
M Erzeugen beliebig vieler Objekte, aber wie wechselnde Bezeichner? Java Basics - Anfänger-Themen 5
W Objekte erzeugen Java Basics - Anfänger-Themen 2
N Interface Interface (sinnvoll) erzeugen Java Basics - Anfänger-Themen 8
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
A Kleinste Ziffer im Array suchen um Sortierung zu erzeugen Java Basics - Anfänger-Themen 2
Joew0815 Interface JSON Objekte aus Java Objekten erzeugen Java Basics - Anfänger-Themen 9
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
Helgon Baumstruktur tiefe N erzeugen Java Basics - Anfänger-Themen 3
X Mehrere Objekte erzeugen Java Basics - Anfänger-Themen 8
G OOP-Frage - Grundlegendes zum erzeugen von Klassen Java Basics - Anfänger-Themen 7
P Kapselung Variable innerhalb einer inneren Klasse ansprechen ohne ein Objekt erzeugen zu müssen? Java Basics - Anfänger-Themen 6
G Methoden BigInteger Zufallszahlen erzeugen Java Basics - Anfänger-Themen 5
Phash Kombinationen erzeugen Java Basics - Anfänger-Themen 4
M Initialisierungsblock beim Erzeugen einer Instanz Java Basics - Anfänger-Themen 6
B Ein Array von Map erzeugen, wie??? Java Basics - Anfänger-Themen 3
M Neues Objekt erzeugen mit Klassennamen oder ohne Java Basics - Anfänger-Themen 5
L Button erzeugen. Java Basics - Anfänger-Themen 4
Manello GUI mit exe erzeugen? Java Basics - Anfänger-Themen 3
StrikeTom Zufälliges Alphabet erzeugen Java Basics - Anfänger-Themen 6
D Textausgabe erzeugen Java Basics - Anfänger-Themen 11
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
H Methoden Array aus Punkten erzeugen, mittels Punkt-Klasse Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben