Guten Abend,
bin dabei java zu erlernen (Neuling) und muss mit netbeans arbeiten. Meine Hausaufgabe besteht darin ein Rechteck zu erzeugen mit einer grafischen Ausgabe. Bis jetzt habe ich nur eine normale Ausgabe.
siehe hier:
Zusätzlich sollte man DrawableRect.java, ColoredRect.java, SecondApplet.java mit dem Programm einbinden. Habe ich auch gemacht, aber was ich nicht weiß ist, wie dadurch eine grafische Ausgabe zustande kommt. Habe versucht und versucht, aber nicht hinbekommen. Wäre über eure Hilfe sehr dankbar.
Rechteck.java
bin dabei java zu erlernen (Neuling) und muss mit netbeans arbeiten. Meine Hausaufgabe besteht darin ein Rechteck zu erzeugen mit einer grafischen Ausgabe. Bis jetzt habe ich nur eine normale Ausgabe.
siehe hier:
Java:
[0,0; 0,0]
[1,2; 13,15]
[3,0; 13,0]
false
[1,18; 13,15]
Rechteck.java
Java:
package rechteck;
public class Rechteck {
// These are the data fields of the class
public int x1, y1, width, height;
/**
* Erzeugt ein neues Exemplar vom Rechteck mit den Uebergebenen Werten.
*/
public Rechteck(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.width = x2;
this.height = y2;
}
/**
* Erzeugung von Rechtecken mit unterschiedlicher Breite und Hoehe.
* Es wird ueberprueft das je ein positiver Wert vorliegt.
*/
public Rechteck(int width, int height)
{
this(0, 0, width, height);
}
/**
* Erzeugt ein neues Exemplar vom Rechteck, wobei alle Werte auf null gesetzt werden.
*/
public Rechteck()
{
this(0, 0, 0, 0);
}
/**
* Verschiebt das Rechteck an den durch x und y bezeichneten Punkt.
*/
public void move(int deltax, int deltay)
{
x1 += deltax; width += deltax;
y1 += deltay; height += deltay;
}
/**
* Liefert true, wenn der durch x und y bezeichnete Punkt innerhalb des Rechtecks liegt, sonst false.
*/
public boolean isInside(int x, int y)
{
return ((x >= x1)&& (x <= width)&& (y >= y1)&& (y <= height));
}
/**
* Liefert das kleinste Rechteck zurueck, das dieses Rechteck und r vollstaendig enthealt.
*/
public Rechteck union(Rechteck r)
{
return new Rechteck((this.x1 < r.x1) ? this.x1 : r.x1,
(this.y1 < r.y1) ? this.y1 : r.y1,
(this.width > r.width) ? this.width : r.width,
(this.height > r.height) ? this.height : r.height);
}
/**
* Liefert den Ueberschneidungsbereich dieses Rechtecks mit r.
* Falls kein gemeinsamer Bereich existiert, ergibt sich ein Rechteck,
* das die Luecke zwischen den beiden Rechtecken buendig ausfuellt.
*/
public Rechteck intersection(Rechteck r)
{
Rechteck Ergebnis = new Rechteck((this.x1 > r.x1) ? this.x1 : r.x1,
(this.y1 > r.y1) ? this.y1 : r.y1,
(this.width < r.width) ? this.width : r.width,
(this.height < r.height) ? this.height : r.height);
if (Ergebnis.x1 > Ergebnis.width) { Ergebnis.x1 = Ergebnis.width = 0; }
if (Ergebnis.y1 > Ergebnis.height) { Ergebnis.y1 = Ergebnis.height = 0; }
return Ergebnis;
}
/**
*Liefert einen String, der die Koordinaten sowie die Breite und die Hoehe des Rechtecks enthealt.
*/
@Override
public String toString()
{
return "[" + x1 + "," + y1 + "; " + width + "," + height + "]";
}
public static void main(String[] args)
{
Rechteck rect = new Rechteck();
Rechteck r0 = new Rechteck(1, 18, 13, 15);
Rechteck r1 = new Rechteck(1, 2, 2, 5);
Rechteck r2 = new Rechteck(3, 5, 13, 13);
System.out.println(rect);
System.out.println(r0.union(r1));
System.out.println(r0.intersection(r2));
System.out.println(r0.isInside(5, 15));
System.out.println(r0.toString());
}
}