Java FX GUI Anwendung

Hallo zusammen,

ich brauche wieder eure Unterstützung. Es soll eine FX Anwendung gestaltet werden, die Figuren aus anderen Klassen anzeigen lässt.
Klasse Drawing als eine Zusammenstellung von Objekten der Klassen Dreieck, Kreis, die in eine Liste namens Shapes zusammengefasst sind / Abstrakte Klasse Figuren --> Klassen Dreieck und Kreis

Wie kann ich Figuren zur Liste hinzugügen und von der Liste entfernen (Klasse Drawing)

FX-Anwendung – Wie können in der GUI Anwendung Objekte aus Klasse Drawing angezeigt werden (vererbung?:oops:)

Über jede Hilfe würde ich mich sehr freuen!!! Gerne auch in Form einer Nachhilfe.

Vielen Dank
 
Viele Wege führen nach Rom und Deine Beschreibung lässt da viel Spielraum... Du solltest etwas konkreter werden, was die Aufgabenstellung betrifft.

Beantworten lässt sich aber:

Mit den Methoden add und remove der Klasse List.
Code:
public class Drawing {
      
    private static Figur Figur = null;

    public static void main(String[]args) {
        Figur d, k, c;
    
        d = new Dreieck(new Punkt(2.0, 1.0), new Punkt(6.0, 3.0), new Punkt(4.0, 7.0));
        k = new Kreis(new Punkt(0.0, 0.0), 3);
        c = new Kreis(new Punkt(1.0, 1.0), 2);
          
            // Vereinbaren einer neuen Variable list vom Typ ArrayList<Figur>
            // Nach dem Konstruktoraufruf hat die ArrayList Platz fuer 10 Elemente.
            // Ist die Kapazitaet erschoepft wird sie automatisch erweitert.
            ArrayList<Figur> shapes = new ArrayList<>();
            

            // Methode zum Fuellen der ArrayList aufrufen
            fuelleArrayList(shapes);

            // Methode zum Ausgeben der ArrayList aufrufen
            ausgebenArrayList(shapes);
        }

        /**
         * ethode zum Befuellen der ArrayList mit Figur Objekten.
         *
         * @param list
         *            ArrayList die gefuellt werden soll
         *
         */
        private static void fuelleArrayList(ArrayList<Figur> shapes) {
            for (int i = 0; i < shapes.size(); i++) {
                // Element zu der Liste hinzufuegen
                shapes.add(Figur);
            }
        }

        /**
         * Methode zum Ausgeben des Inhalts der ArrayList auf der Konsole.
         *
         * @param list
         *            ArrayList die ausgegeben werden soll
         */
        private static void ausgebenArrayList(ArrayList<Figur> shapes) {
            // Gesamtanzahl der Elemente ausgeben
            System.out.println("In der ArrayList sind " + shapes.size() + " Objekte.");

            // Schleife ueber alle Elemente der ArrayList
            for (Figur inhalt : shapes) {
                System.out.println(inhalt);
            }
        }
}

Was habe ich falsch gemacht?
In der ArrayList sind 0 Objekte.
 
K

kneitzel

Gast
Ziemlich viel.

shapes ist eine leere ArrayList, die übergibst du an die Methode fuelle(). Darin ist eine Schleife die bis zu shapes.size() geht. Und wie groß ist nun shapes?
Erst einmal dürfte es gar nicht übersetzen. Somit wird noch nicht einmal eine ArrayListe erzeugt und so ...

shapes.add(Figur);
macht so keinen Sinn. shapes will eine Figur übergeben bekommen...

Und bei dem Code macht vieles keinen Sinn, so dass ich da erst einmal um eine Erläuterung bitten würde, was wo geschehen soll!
 

temi

Top Contributor
Klasse Drawing als eine Zusammenstellung von Objekten der Klassen Dreieck, Kreis, die in eine Liste namens Shapes zusammengefasst sind / Abstrakte Klasse Figuren --> Klassen Dreieck und Kreis

Wie kann ich Figuren zur Liste hinzugügen und von der Liste entfernen (Klasse Drawing)

Um mal ein paar Dinge für die Lösung zu nennen:
  • du hast eine Klasse Drawing
  • diese benötigt ein Attribut (Instanzvariable) shapes (die Liste)
  • außerdem die Methoden add(Figur) und remove(Figur)
  • "static" ist an keiner Stelle notwendig und gewünscht
Verwendet wird das dann etwa so:
Java:
Drawings drawings = new Drawings();

Dreieck dreieck = new Dreieck(); // Parameter weggelassen...

drawings.add(dreieck);
drawings.add(new Kreis());

drawings.remove(dreieck);

Edit: Noch ein Anmerkung zu static:

Für erste Versuche und Übungen bei denen man nur eine Klasse mit der Methode main() hat, ist es noch in Ordnung "static" zu verwenden, um z.B. auch mit Methoden arbeiten zu können.

Spätestens sobald weitere (selbst erstellte) Klassen ins Spiel kommen muss damit Schluss sein. Static wird für bestimmte Ausnahmen benötigt, aber auch nur dafür.
 
Zuletzt bearbeitet:
vielen Dank für eure Unterstützung!!!
Aber bin ich immer noch nicht ganz sicher , ob mein Lösungsweg richtig ist.
Ich habe Klasse Punkt:
Java:
public class Punkt {
    private double x;
    private double y;
    
    public Punkt (double x, double y) {
    this.x = x;
    this.y = y;
    }
    
    public void setX(double x) {
    this.x = x;
    }
    
    public void setY(double y) {
    this.y = y;
    }
    
    public double getX() {
    return x;
    }
    
    public double getY() {
    return y;
    }

}

Dann abstrakte Klasse Figur:
Java:
abstract class Figur {
    protected int nummer;
    private static int zaehler = 0;
  
    Figur() {
    zaehler++;
    nummer = zaehler;
    }
    
    public int ausgebenNummer() {
    return nummer;
    }

    public String toString() {
    return "Return über toString-Methode: \n" + getForm() + "; Flaecheninhalt: " + getFlaeche() + "; Umfang: " + getUmfang() + "\n";
    }
    
    public abstract double getFlaeche();
    public abstract double getUmfang();
    public abstract String getForm();
}

Dann zwei Klassen Kreis und Dreieck:

Java:
public class Kreis extends Figur{
    Punkt m;
    double r;
    
    public Kreis(Punkt m, double r) {
    this.m = m;
    this.r = r;
    }

    @Override
    public double getFlaeche() {
    double fl = Math.PI * r * r;
    return fl;
    }

    @Override
    public double getUmfang() {
    double umfang = 2 * Math.PI * r;
    return umfang;
    }

    @Override
    public String getForm() {
    String form = "Kreis";
        return form;
    }
}

Dann Klasse Drawing:
Java:
import java.util.ArrayList;

public class Drawing {
      
    public static void main(String[]args) {
    ArrayList<Figur> shapes = new ArrayList<Figur>();
    
    Punkt x1 = new Punkt (0.0, 0.0);
    Punkt x2 = new Punkt (1.1, 1.0);
    
// Figur hinzufügen, Aber keine Methode
    shapes.add(new Kreis(x1, 3));
    shapes.add(new Kreis(x2, 4));
    shapes.remove(new Kreis(x2, 4));
    
        for (Figur inhalt : shapes) {
            System.out.println(inhalt);
            }
    }
}

Hier ist immer noch für mich fast ALLES kaum verständich. Sorry, aber bin ich Anfänger und mache echer intuitiv .....o_O .
Mit fehlen immer noch Methoden :
um Figuren zur Liste hinzugügen oder von der Liste entfernen,
zur Umwandlung einer Figure in eine Instanz der Klasse Drawing und umgekehrt;
Methode zur Abfrage, ob ein Punk innerhalb Figure liegt;
Methode, um den Index einer Figur oder die Figur zu einem Index abzufragen

Über scene rede ich erst gar nichts..
 

mihe7

Top Contributor
Hier ist immer noch für mich fast ALLES kaum verständich. Sorry, aber bin ich Anfänger und mache echer intuitiv .....o_O .
Eigentlich ist das alles recht intuitiv, allerdings musst Du Dich wirklich um ein paar Grundlagen kümmern.

Klasse Drawing als eine Zusammenstellung von Objekten der Klassen Dreieck, Kreis, die in eine Liste namens Shapes zusammengefasst sind
Dann mach das doch einfach (Skizze):
Java:
public class Drawing {
    private List<Figur> shapes = new ArrayList<>();

    public void hinzufuegen(Figur figur) {
        shapes.add(figur);
    }

    public void entfernen(Figur figur) {
        shapes.remove(figur);
    }
}

Jetzt kannst Du irgendwo in Deinem Code eine neue Zeichnung erstellen und Figuren hinzufügen:
Java:
    Punkt x1 = new Punkt (0.0, 0.0);
    Punkt x2 = new Punkt (1.1, 1.0);
    Drawing zeichnung = new Drawing();
    zeichnung.hinzufuegen(new Kreis(x1, 3));
    zeichnung.hinzufuegen(new Kreis(x2, 4));
 
Die bisherige Code habe ich selbst geschrieben und verstehe da alles. Für mich den Lösungsweg selbst nicht ganz verständlich.
app.jpg

In der Aufgabe steht:
1) Abstrakte Klasse Figur fasst die Gemeinsamkeit der Klassen Kreis, Dreieck.
2) Die Klasse Drawing kann als eine Zusammenstellung von Objekten interpretiert werden, die von der abstrakte Klasse Figur abgeleitet sind. Folglich werden die Referenzen der in der Zeichnung enthaltene Figuren in einer Liste namens shapes verwaltet. Die Klasse Drawing muss über eine Reihe von Methoden verfügen, die es ermöglichen:
a) die Referenz einer weiteren Figur zur Zeichnung hinzufügen;
b) ausgewählte Figuren aus der Zeichnung löschen;
c) die Parameter, den Flächeninhalt und den Umfang aller Figuren der Zeichnung ausgeben.

3) Erweitern Sie die Klasse Figur und sowie konkreten Figuren-Klassen um Variablen und Methoden (falls notwendig), wie z.B.
a) erweiterte Konstruktoren,
b) Zugriffsfunktionen,
c) Methoden zur Umwandlung einer Figur in eine Instanz der Klasse Shape und umgekehrt;
d) eine Methode zur Abfrage, ob ein Punk innerhalb einer Figur liegt

4) Implementieren Sie die Klasse Drawing, die eine Zeichnung als Zusammenstellung von Figuren der abstrakte Klasse Figur enthält.
a) fassen Sie die Instanzen dieser Objekte in einer Liste namens shapes zusammen.
b) implementieren für die Klasse Drawing Methoden, die es ermöglichen Figuren zur Lste hinzufügen oder von der Liste entfernen; den Index einer Figu oder die Figur zu einem Index abzufragen

5) Prüfen Sie, ob alle Attribute dieser implementierten Klassen von Zugriffen von aussen geschützt, jedoch alle Methoden verwendbar sind. Achten Sie dabei auf die Regelung der Zugriffskontrole bei der Verebung. Schreiben Sie für alle geschützten Attribute Zugriffsfunktionen, die es erlauben, die Attribute zu verändern oder zu lesen.

6) Entwickeln eine GUI Anwendung App, die als Attribut eine Instanz der Klasse Drawing verwaltet.
a) Oben als Zeichnung, Unten Textfelder zur Auswahl des Indizes einer Figur und zur Ein-Ausgabe der dazugehörigen Attribute sowie Typs, Umfang, Fläche
b) Veränderungen in den Textfeldern werden erst nach Bestätigung OK—Button in die Zeichnung übernommen.
c) binden Sie die Mouse in die GUI Anwendung ein. Modifizieren Sie dazu App so, dass die Auswahl der angezeigten Figur über Mouse erfolgen und eine neue Figur (z.B. Rechteck) mit der Mouse aufgezogen werden kann.
Zum Schluss sollte es so aussehen:
appfront.jpg
 
Danke für Geduld:)
Sie ist jedenfalls sinnvoll.

Hast Du diese eingeführt oder war die Teil eines gegebenen UML-Diagramms?
Punk habe ich selber ausgedacht, weil in der Anwendung sollten Koordinaten angezeigt werden und ich habe gedacht, dass die Klasse Punk in dem Fall sinnvoll ist. Jetzt habe ich diese gelöscht und weitere Klassen ümgeschrieben. Es ist nur noch Anwendung selbst geblieben. soll weiter kämpfen....
Es irretiert mich immer noch Punk 3c, ich verstehe nicht, was ist hier gemeint
 

temi

Top Contributor
Es irretiert mich immer noch Punk 3c, ich verstehe nicht, was ist hier gemeint

Ich nehme an, bei Shape handelt es sich um die JavaFx-Klasse Shape. Ist aber nur eine Vermutung, weil es sich um eine JavaFx-Anwendung handelt.

Punk habe ich selber ausgedacht, weil in der Anwendung sollten Koordinaten angezeigt werden und ich habe gedacht, dass die Klasse Punk in dem Fall sinnvoll ist.

Mit deinen Gedanken liegst du ganz richtig. Sinnvoll ist es auf jeden Fall. In diesem Sinne: Punks not dead!

Edit: Für einige der in der Aufgabe verlangten Funktionen schau dir auch die Doku zur Java List an. Die hat viele Methoden, die du gebrauchen kannst.
 
Zuletzt bearbeitet:
Hallo noch mal.

Wie kann ich direkt in der FX-Anwendung Objekte aus anderen Klassen erzeugen und Methode aus anderen Klassen aufrufen, wenn da in der main Methode eigentlich nur launch(args) ist? Ich habe schon so viel Informationen gelesen, aber immer noch auf dem gleichem Punkt…..
 

mihe7

Top Contributor
Wie kann ich direkt in der FX-Anwendung Objekte aus anderen Klassen erzeugen und Methode aus anderen Klassen aufrufen
Wie in allen anderen Anwendungen auch: mit new werden Objekte erzeugt. Deren Referenzen werden in Variablen gespeichert und über diese lassen sich die Methoden aufrufen.
Java:
SomeClass someObject = new SomeClass( /* Parameterliste */ );
someObject.someMethod( /* Parameterliste */ );
 
Wie in allen anderen Anwendungen auch: mit new werden Objekte erzeugt. Deren Referenzen werden in Variablen gespeichert und über diese lassen sich die Methoden aufrufen.
Java:
SomeClass someObject = new SomeClass( /* Parameterliste */ );
someObject.someMethod( /* Parameterliste */ );
So habe ich auch versucht, aber funktioniert nicht.....
Java:
BorderPane borderPane = new BorderPane();
Scene scene = new Scene(borderPane,1000,400);
Drawing zeichnung = new Drawing();
zeichnung.hinzufuegen(new Rechteck(1, 1, 5, 4));
borderPane.getChildren().add(zeichnung);
 

mihe7

Top Contributor
Ja, das ist auch völlig logisch: Drawing ist ja keine JavaFX-Klasse (oder von einer solchen abgeleitet). Aus dem Grund gibt es die Aufgabe 3 c)
 
Ja, das ist auch völlig logisch: Drawing ist ja keine JavaFX-Klasse (oder von einer solchen abgeleitet). Aus dem Grund gibt es die Aufgabe 3 c)
und genau das, konnte ich leider nicht....
Java:
public class Drawing {
    
    List<Figur> shapes = new ArrayList<Figur>();
    
    public void hinzufuegen(Figur x) {
    for (int i = 0; i< x.lenght; i++) {
        if(x instanceof Kreis ) {
            Kreis kreis = (Kreis) x;
            shapes.add(x);
        } else {
            Rechteck rechteck = (Rechteck) x;
            shapes.add(x);
        }
    }
Kann mir jemand helfen? Was mache ich falsch???
 
Du hast ja eine Klasse Figur. Nun sollst Du die Klasse Figur "umwandeln" in eine Klasse Shape. Kennst Du die Klasse Shape denn schon? Hast Du Dir die einmal angesehen?

Als Hinweis vielleicht einmal: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/shape/Shape.html
Die Klasse Shape kenne ich, aber nich auswendig.
Jetzt sieht meine Drawing klass so aus:
Java:
import java.util.ArrayList;

public class Drawing {
    
 public static ArrayList<Figur> getDefaultFigur() {
     ArrayList<Figur> shapes = new ArrayList<>();
     shapes.add(Figur.getDefaultFigur());
     shapes.add(Figur.getDefaultFigur());
     return shapes;
 }
}

und die Klasse Figur:
Java:
package model;

import javafx.scene.paint.Color;

public abstract class Figur {
    //Attribute
    protected int nummer;
    private static int zaehler = 0;
    protected double xKoord;
    protected double yKoord;
    public int lenght = 5;

    // Konstruktor
    public Figur(double pXKoord, double pYKoord) {
    xKoord = pXKoord;
    yKoord = pYKoord;
    zaehler++;
    nummer = zaehler;
    }
    
    public int ausgebenNummer() {
    return nummer;
    }
    
    // Ausgabe
    public String toString() {
    return "Return über toString-Methode: \n" + getForm() + "; Flaecheninhalt: " + getFlaeche() + "; Umfang: " + getUmfang() + "\n" + "Koordinaten:" + xKoord + "," + yKoord;
    }
    
    //get-Methode
    public double getKoordX() {
    return xKoord;
    }
    
    public double getKoordY() {
    return yKoord;
    }
    
    
    // Abstrakte Methoden
    public abstract boolean enthaelt(Punkt pPunkt);
    public abstract double getFlaeche();
    public abstract double getUmfang();
    public abstract String getForm();
    
    public static Figur getDefaultFigur(){
    Rechteck rec1= new Rechteck(4.0, 4.0, 20, 10);
        rec1.setStrocke(Color.BLUE);
        return rec1;
    }
 }

Aber meine Methode getDefaultFigur() in der Klasse Figur.... Ist so was erlaubt???
Oder wie kann ich das machen?
 
K

kneitzel

Gast
Kannst Du mir bitte einmal mitteilen, was Du genau versuchst? Im Augenblick verstehe ich nicht, was Du mit der "getDefaultFigur" erreichen willst oder wozu die da sein soll.

Ich hatte das so verstanden, dass es um den Punkt 3c geht:
c) Methoden zur Umwandlung einer Figur in eine Instanz der Klasse Shape und umgekehrt;

Also wenn Du eine Instanz von Rechteck hast -> Wie kannst Du daraus eine Instanz von Shape (oder abgeleitet) erzeugen?
Und wenn Du eine Klasse hast, die von Shape abgeleitet ist -> Wie könntest Du da zu einer Instanz von Figur (oder abgeleitet) kommen?

Das Problem in #18, auf das dann in #19 hingewiesen wurde ist doch: In der Java GUI können Deine Klassen nicht dargestellt werden. JavaFX weiss nicht, wie "Rechteck" oder so zu zeichen ist. Aber es gibt die Klasse Shape (und davon abgeleitete Klassen) und wenn Du aus einer Rechteck Instanz eine Shape Instanz machen kannst, dann kannst Du diese Shape Instanz in JavaFX darstellen.

Also ist nun die Frage: Wie kriegst Du z.B. auch Deiner Rechteck Instanz eine Instanz von Shape?
 
Kannst Du mir bitte einmal mitteilen, was Du genau versuchst? Im Augenblick verstehe ich nicht, was Du mit der "getDefaultFigur" erreichen willst oder wozu die da sein soll.

Ich hatte das so verstanden, dass es um den Punkt 3c geht:
c) Methoden zur Umwandlung einer Figur in eine Instanz der Klasse Shape und umgekehrt;

Also wenn Du eine Instanz von Rechteck hast -> Wie kannst Du daraus eine Instanz von Shape (oder abgeleitet) erzeugen?
Und wenn Du eine Klasse hast, die von Shape abgeleitet ist -> Wie könntest Du da zu einer Instanz von Figur (oder abgeleitet) kommen?

Das Problem in #18, auf das dann in #19 hingewiesen wurde ist doch: In der Java GUI können Deine Klassen nicht dargestellt werden. JavaFX weiss nicht, wie "Rechteck" oder so zu zeichen ist. Aber es gibt die Klasse Shape (und davon abgeleitete Klassen) und wenn Du aus einer Rechteck Instanz eine Shape Instanz machen kannst, dann kannst Du diese Shape Instanz in JavaFX darstellen.

Also ist nun die Frage: Wie kriegst Du z.B. auch Deiner Rechteck Instanz eine Instanz von Shape?
Java:
public class Test extends Application {
    .......
    Rectangle n = new Rectangle(0, 0, 800, 460);
    root.getChildren().add(n);
}
 
K

kneitzel

Gast
Ich weiß jetzt gerade nicht wirklich weiter. Vielleicht ein kleines Beispiel das man aus dem echten Leben konstruiert:

Du hast Dinge in Kartons (=> Figur). Egal was da drin ist. Du hast halt diverse Kartons, z.B. Schuhkartons (=> Rechteck). Und nun willst Du dem Deinem Vater zur Aufbewahrung geben. Dein Vater will die Teile aber ordentlich stapeln, daher will er von Deinen blöden Kartons nicht wissen! Die sind nicht stabil genug, halten ggf. Feuchtigkeit nicht ab, haben keine Einheitlichen Maße und und und ... Daher nimmt Dein Vater nur "StapelbarePlastikBox" (==> Shape) entgegen. Die als solche gibt es nicht, aber da hat Dein Vater ganz viele tolle Dinge, z.B. StapelbarePlastikBox50x25x25 (==> javafx.scene.shape.Rectangle).

Also da Dein Vater Deine Kartons nicht mag und Du aber total auf die Kartons abfährst, brauchst Du nun eine Methode, um
a) den Inhalt aus Deinem Schuhkarton in eine entsprechend ausgesuchte StapelbarePlastikBox zu packen (==> Dann kannst Du es Deinem Vater zum einlagern geben)
b) den Inhalt aus der StapelbarePlastikBox wieder in einen Karton zu packen. (==> Dann bist Du glücklich, denn Du kannst nur glücklich sein, wenn Du es in Kartons hast!

Also: Hör auf Deinem Vater Kartons geben zu wollen! Wenn Du das weiter machst, dann musst Du in Deinem Zimmer bleiben und bekommst eine Woche lang keinen Nachtisch! (==> Compiler-Fehler das dein Code einfach nicht übersetzbar ist!)
 
K

kneitzel

Gast
Ich kann etwas vorgeben, wie man einen Teil machen könnte. Deine Klasse Figur kann eine abstrakte Methode public Shape asShape() bekommen. Diese kannst Du dann in allen Klassen überschreiben.

In Rechteck erzeugst Du eine Instanz von Rectangle und setzt dann die Werte von Rectangle, ehe Du Rectangle zurück gibst:

Java:
Rectangle r = new Rectangle();
r.setX(x);
r.setY(y);
r.setWidth(width);
r.setHeight(height);
return r;

Wobei ich Deine Klasse Rechteck nicht kenne, also die Instanzvariablen für x/y und breite/hoehe heißen evtl. anders.

Und Rechteck bekommt eine static Methode a.la.

Java:
public static Rechteck fromRectangle(Rectangle rectangle) {
    Rechteck result = new Rechteck();
    result.setX(rectangle.getX());
    result.setY(rectangle.getY());
    result.setWidth(rectangle.getWidth());
    result.setHeight(rectangle.getHeight());
    return result;
}
Und schon hast Du eine Möglichkeit, aus dem javafx Rectangle ein von Dir geschriebenes Rechteck zu machen.

Und da Shape von Node erbt und Rectangle von Shape, kannst Du so ein Rectangle zu den "children" hinzufügen, also sowas root.getChildren().add(rechteck.asShape());
 
Ich kann etwas vorgeben, wie man einen Teil machen könnte. Deine Klasse Figur kann eine abstrakte Methode public Shape asShape() bekommen. Diese kannst Du dann in allen Klassen überschreiben.

In Rechteck erzeugst Du eine Instanz von Rectangle und setzt dann die Werte von Rectangle, ehe Du Rectangle zurück gibst:

Java:
Rectangle r = new Rectangle();
r.setX(x);
r.setY(y);
r.setWidth(width);
r.setHeight(height);
return r;

Wobei ich Deine Klasse Rechteck nicht kenne, also die Instanzvariablen für x/y und breite/hoehe heißen evtl. anders.

Und Rechteck bekommt eine static Methode a.la.

Java:
public static Rechteck fromRectangle(Rectangle rectangle) {
    Rechteck result = new Rechteck();
    result.setX(rectangle.getX());
    result.setY(rectangle.getY());
    result.setWidth(rectangle.getWidth());
    result.setHeight(rectangle.getHeight());
    return result;
}
Und schon hast Du eine Möglichkeit, aus dem javafx Rectangle ein von Dir geschriebenes Rechteck zu machen.

Und da Shape von Node erbt und Rectangle von Shape, kannst Du so ein Rectangle zu den "children" hinzufügen, also sowas root.getChildren().add(rechteck.asShape());
Danke!!!!!:)
Sollten Klassen Rechteck, Kreis auch Methoden setX(), setY(), setWidth() und setHeight() besitzen?
 
Java:
package model;

import javafx.scene.shape.Rectangle;
import javafx.scene.shape.Shape;

public class Rechteck extends Figur{
    private double breite;
    private double hoehe;
    
    public Rechteck(double pXKoord, double pYKoord, double pBreite, double pHoehe) { //Konstruktor der Oberklasse aufrufen
    super(pXKoord, pYKoord);
    breite = pBreite;
    hoehe = pHoehe;
    }

    @Override
    public boolean enthaelt(Punkt pPunkt) {
    return pPunkt.getKoordX() >= xKoord && pPunkt.getKoordX() <= breite + xKoord &&
           pPunkt.getKoordY() <= yKoord && pPunkt.getKoordY() <= hoehe + yKoord;
    }

    @Override
    public double getFlaeche() {
    double fl = breite * hoehe;
    return fl;
    }

    @Override
    public double getUmfang() {
    double um = breite + hoehe + breite + hoehe;
    return um;
    }

    @Override
    public String getForm() {
    String form = "wat";
        return form;
    }

    @Override
    public Shape asShape() {
    Rectangle r = new Rectangle();
    r.setX(xKoord);
    r.setY(yKoord);
    r.setWidth(breite);
    r.setHeight(hoehe);
    return r;
    }
    


    public static Rechteck fromRectangle(Rectangle rectangle) {
    Rechteck result = new Rechteck();
    result.setX(rectangle.getX());
    result.setY(rectangle.getY());
    result.setWidth(rectangle.getWidth());
    result.setHeight(rectangle.getHeight());
    return result;
}

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
P Best Practice Druck aus Java Anwendung in MacOs Java Basics - Anfänger-Themen 0
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
I Java Anwendung auf Android portieren Java Basics - Anfänger-Themen 1
GENiALi Java Console Anwendung starten in Prozess Java Basics - Anfänger-Themen 3
A Testprogramm in java oder javascript für Windows Anwendung? Java Basics - Anfänger-Themen 1
C Java-Anwendung im Browser zoomen Java Basics - Anfänger-Themen 1
E mit java-anwendung internet verbindung unterbrechen Java Basics - Anfänger-Themen 5
FreeFun Java Anwendung beenden Java Basics - Anfänger-Themen 7
J GUI für Java-Anwendung erzeugen Java Basics - Anfänger-Themen 7
U Rechte bei JAVA-Anwendung? Java Basics - Anfänger-Themen 8
C Mit Java Textfeld einer externen Anwendung auslesen Java Basics - Anfänger-Themen 9
P Java Anwendung mit mehr RAM starten?? Java Basics - Anfänger-Themen 5
D Das Ausführen einer Java Anwendung auf versch Systemen... Java Basics - Anfänger-Themen 5
F u.a. Ressourcen begrenzung für Java-Anwendung Java Basics - Anfänger-Themen 5
K JAVA-Anwendung startet nicht Java Basics - Anfänger-Themen 7
B Java-Anwendung im Windows Design Java Basics - Anfänger-Themen 8
J java anwendung starten - wie? Java Basics - Anfänger-Themen 7
M Handy Java Anwendung Java Basics - Anfänger-Themen 8
A java-anwendung ohne jre starten Java Basics - Anfänger-Themen 8
D html in einer java-anwendung Java Basics - Anfänger-Themen 10
R Java als Anwendung Java Basics - Anfänger-Themen 6
A Kommunikation Java-Anwendung <-> Java-Applet Java Basics - Anfänger-Themen 24
G Andere Anwendung aus Java heraus steuern Java Basics - Anfänger-Themen 3
cowabunga1984 Jar-File aus Java-Anwendung starten Java Basics - Anfänger-Themen 7
J Java Anwendung starten ""faild to load main class Java Basics - Anfänger-Themen 15
K Anwendung mit anderer Java-Version Starten Java Basics - Anfänger-Themen 9
F Root-Pfad der Java-Anwendung herausfinden Java Basics - Anfänger-Themen 1
A JAVA Anwendung als Gateway Java Basics - Anfänger-Themen 2
R newbie : "Schwarzes Loch" in JAVA-Anwendung Java Basics - Anfänger-Themen 2
G Kommunikation zwischen Applet und Java-Anwendung über TCP/IP Java Basics - Anfänger-Themen 3
T Newbie Frage Eine Java Anwendung fernsteuern? Java Basics - Anfänger-Themen 4
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben