Array ausgeben

Status
Nicht offen für weitere Antworten.
C

-canu

Gast
Hallo,
ich bin noch ein blutiger Anfänger also bitte nicht lachen,
es geht um eine Aufagbe wo man ein char array ausgeben muss und zwar auf einer Zeichenfläche.
Die selbe Aufagbe sollten wir zuvor nur mit Consolenausgabe programmieren.
Ich weiss einfach nicht wie ich die paint() Methode richtig anwende und es fehlt mir an Vorstellungskraft...

ich poste mal die klassen für ein Punkt :


public class Punkt extends GObj {

public Punkt(int px, int py) {
super(px, py);
}

void show() {
bild.set(x,y,"+");
}
}

-----------------------------------------------------

public abstract class GObj {

protected int x, y;
protected Bild bild ;

public GObj(int px, int py) {
x=px; y=py;
}

abstract void show();

final void setBild( Bild b ){
bild = b ;
}

public String toString() {return "x = " + x + " y = " + y ; }

final void move(int dx,int dy) {
x+=dx; y+=dy;
}
}


----------------------------------------------------


import java.awt.Graphics;
import java.util.*;

class Bild {
int hoehe, breite;
String[][] a ;
ArrayList<GObj> ol ;

Bild(int h,int b) {
ol = new ArrayList<GObj>() ;
hoehe=h ;
breite=b ;
a = new String[breite][hoehe];
new MyFrame("lol");
clear();
}

public void add(GObj g)
{ g.setBild(this);
ol.add( g ) ;
}

public void remove(GObj g)
{ ol.remove( g ) ;
}

public void onTop(GObj g)
{ ol.remove( g ) ;
ol.add( g );
}

public void displayAll()
{ clear();
for( GObj g : ol )
g.show() ;
display() ;
}


protected void display() {
for(int y=0;y<hoehe;y++)
{
for(int x=0;x<breite;x++)
System.out.print(" "+a[x][y]);
System.out.println();
}
}

final private void clear() {
for(int x=0;x<breite;x++)
for(int y=0;y<hoehe;y++)
a[x][y] = "." ;
}

final void set(int x,int y, String c) {
if( 0<=x && x<breite && 0<=y && y<hoehe )
a[x][y] = c ;
}
void drawMe(Graphics g){
for(int x=0;x<breite;x++)
for(int y=0;y<hoehe;y++)
g.drawString(a[x][y] , hoehe, breite);
}
}


--------------------------------------------------------
import javax.swing.JFrame;
class MyFrame extends JFrame
{

MyFrame(String s)
{
super(s);
getContentPane().add(new MyPanel());

setSize(300,300);
setLocation(350, 250);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

-----------------------------------------------------
import java.awt.Graphics;
import javax.swing.JPanel;

class MyPanel extends JPanel {
public void paint (Graphics g)
{ new Bild (20,20).drawMe(g);

}
}

------------------------------------------------------
und schließlich die main mit aufgabe
----------------------------------------------------------package test2;

class p3v2 {

/**
* @param args
*/
public static void main(String[] args) {
Bild b = new Bild(60,30) ; // Höhe (60) x Breite (30)
zeichneAuf( b ) ;
// folgendes soll später in Aufgabe 2.1. auch funktionieren:
// SwingBild sb = new SwingBild(60,30) ;
// zeichneAuf( sb ) ;
}

private static void zeichneAuf( Bild b )
{
Punkt p = new Punkt(7,15) ; // lege einen Punkt an
b.add( p ); // füge den Punkt dem Bild hinzu
b.add( new Punkt(10,20) ); // füge dem Bild noch einen Punkt hinzu
/*b.add( new VLinie(10,15,15) ); // und noch eine vertikale Linie hinzu
Rechteck r = new Rechteck(6,13,5,5) ; // lege ein Rechteck an
b.add( r ) ; // füge das Rechteck dem Bild hinzu
b.add( new HLinie(3,16,15) ); // und noch eine horizontale Linie
Rechteck r2 = new Rechteck(6,13,4,4) ; // lege noch ein Rechteck an
b.add( r2 ) ; // füge das Rechteck dem Bild hinzu
r.move(3,3) ; // verschiebe das untere Rechteck (r)
// um je 3 nach unten und rechts
Rechteck r3 = new Rechteck(4,12,5,5) ; // lege noch ein Rechteck an
b.remove(r3) ; // lösche das Rechteck
b.onTop( p ) ;
**/ // ziehe Obejkt b heraus und hole es nach vorne
b.displayAll(); // zeichne das Bild (in dieser Aufgabe:
// zeichne Zeichen (*,|,-,+) auf System.out)
}

}

/* Aufgabe 1: geometrische Objekten / Grafik

Ziele:
1. Klassenentwurf
2. Minimierung von Code durch maximale Wiederverwendung
3. Kapselung von Code durch maximale Einschränkung der Sichtbarkeit


A1 Entwerfen und programmieren Sie eine Klassenbibliothek für
Fensterobjekte, d.h.
- Rechtecke deren Außenseiten parallel zum Bildschirmrand
liegen
- horizontale und vertikale Linien, die parallel zum
Bildschirmrand liegen
- Punkte

+-------+ |
| | ----------- | *
+-------+ |

sowie eine Klasse Bild, die die im Bild enthaltenen
Fensterobjekte in einer Liste verwaltet und bei Aufruf einer Methode
displayAll() auf der Ausgabe darstellt.

Ihre Grafikbibliothek soll folgende Funktionen anbieten:

1. Neue Objekte definieren (durch Konstruktoraufrufe von Punkt, VLinie,
HLine, Rechteck)
2. Objekte zu einem Bild hinzufügen (=oben auf den Objektstapel legen,
wodurch tiefer liegende Objekte z.T. verdeckt werden können)
3. Objekt löschen
(=ausklinken aus der Liste der sichtbaren Objekte),
4. Objekte verschieben (nach links,rechts,oben,unten),
5. Objekt nach vorne holen
6. alle Objekte anzeigen lassen, dabei sollen neue Objekte
jeweils alte Objekte überlagern, z.B.:

| |
+---|----- + |
| | | |
+---------+ | |
* | |---+ |
+---------+ |

7. Das Bild mit übereinander liegenden Objekten soll intern
in der Klasse Bild in einem Array von Zeichen (char) konstruiert
werden und in dieser Aufgabe bei Aufruf der Methode displayAll()
auf der Konsole ausgegeben werden.
8. Die Klasse Bild soll so entworfen werden,
dass die Ausgabe später auch anders dargestellt werden kann,
z.B. in einem Swing-Fenster
(die Programmierung des Swing-Fensters ist NICHT Teil dieser Aufgabe).

Das unten gegebene Programm soll ohne Änderung korrekt
funktionieren. (Natürlich können und sollen Sie das Programm
zu Testzwecken ändern.)

Prüfen Sie (wie immer beim OOP) zuerst,
was durch Vererbung lösbar ist, d.h.:
1. Welche Klassen gibt es in der Aufgabenstellung ?
2. Welche zusätzlichen abstrakten Klassen fordert das
Single-Source-Prinzip ?
3. Wo werden welche Attribute angesiedelt ?
4. Wo werden welche Methoden angesiedelt ?
5. Wofür braucht man abstrakte Methoden ?
6. Sind die Methoden tatsächlich nach dem
Single-Source-Prinzip entworfen ?
7. Was müssen die Konstruktoren jeder Klasse tun ?
8. Welche Attribute müssen protected sein
und welche können private sein ?
Dann erst anfangen zu codieren!

Hinweis: Der zusätzliche Code der Musterlösung
ist (eng geschrieben) ca. 1 Seite lang.

Bewertung:
0 Punkte für eine Lösung, die nicht vollständig korrekt funktioniert.

12 Punkte für eine Lösung, die mit dem gegebenen Programm und
bei kleinen Änderungen des Programms (z.B. mehr Objekte
anlegen, andere Objekte nach vorne holen, löschen verschieben etc.)
vollständig korrekt funktioniert,
aber Code-Minimierung durch Wiederverwendung
und Geheimnisprinzip nicht vollständig umsetzt
4 Punkte zusätzlich für eine korrekte Lösung, die Code-Minimierung durch
Wiederverwendung optimial umsetzt
4 Punkte zusätzlich für eine korrekte Lösung, die das Geheimnisprinzip
optimal umsetzt.


*/

Ich bitte um Hilfe ,sitze seit ca.7 stds am Probieren.

mfg canu
 

sliwalker

Top Contributor
Hoi,

1. Bitte Code-Tags verwenden und Deinen Beitrag neu formatieren.
Das kostet mehr arbeit sich da durch zu finden als das eigentliche Problem.

2. Was ist Dein Problem? "ich verstehe paint() nicht" ist keine Frage.

3. Es ist allgemein bekannt, dass wir keine Hausaufgaben machen, sondern nur bei Problemen helfen, welches Du noch nicht definiert hast.

4. Ich finde da kein char Array, was aber auch an der Formatierung liegen kann.

5. Hast Du die FAQ zum Zeichen in Java in diesem Forum gelesen? Wenn es Dir an Verständnis magelt, dann tu das bitte zuerst. Kannst auch gleich noch den Beitrag im gallileo open book dazu mitlesen.


Ist nicht bös gemeint, aber im Moment kann man Dir nicht helfen, außer man macht es für Dich. Also grenz Dein problem Schritt für Schritt ein und meld Dich nochmal. Dann helfen wir Dir gerne.


greetz
SLi
 
L

lohr

Gast
Hinzufügen wäre noch das bei groben lesen des codes auffällt, das dies kein purer anfängercode ist...hast du vielleicht mal 1-2 vorlesungen blau gemacht ;)
 
C

-canu

Gast
danke fuer euere antoworten,
kann den post leider nicht mehr editieren, da ich nicht angemeldet bin.

hatte 1 semester Grundlagen der Programmierung und jetzt gehts im 2ten weiter mit swing und awt,deswegen solage kein swing und awt vorkommt is es kein problem,btw der code ist ein teil dir musterloesung von unserem prof.
mein problem ist ich kann mir nicht vorstellen wie ich z.b ein object der klasse punkt und eins der klasse rechteck in einem object bild der klasse bild speichere, wenn nicht im char array und wie ich fuer dieses object bild in der klasse mypanel die richtige paint methode anwende,da es beim punkt ja anders ist als ein rechteck.


mein plan ist jetzt irgendwie ^^ die paint methode in den jeweiligen klassen zu ueberschreiben und anzupassen:

Punkt Bild
constructor() constructor()
paint() drawMe()

was meint ihr ?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
W Array ausgeben Java Basics - Anfänger-Themen 29
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
M Array rückwärts ausgeben Java Basics - Anfänger-Themen 2
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
Curtis_MC 2dimensionales Array als String ausgeben Java Basics - Anfänger-Themen 2
C Array Rückwärts ausgeben Java Basics - Anfänger-Themen 7
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
R Vom SQL Array ausgeben Java Basics - Anfänger-Themen 5
J Kapselung Array in Set ändern und in Main ausgeben lassen Java Basics - Anfänger-Themen 4
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
J int array als double array ausgeben Java Basics - Anfänger-Themen 9
X Array List geordnet ausgeben. (JSF und JAVA) Java Basics - Anfänger-Themen 1
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Methoden 2 D-Array Belegungsplan textuell ausgeben Java Basics - Anfänger-Themen 6
B mir nur die Gesamtzahl von einzigartigen Strings aus Array ausgeben lassen Java Basics - Anfänger-Themen 5
karlmasutra OOP Inhalt eines Array ausgeben lassen Java Basics - Anfänger-Themen 8
O Array nach gleichen Zahlen prüfen und ausgeben Java Basics - Anfänger-Themen 6
K Eingabe in Array speichern und Ausgeben Java Basics - Anfänger-Themen 9
nightsky_ Mehrdimensionales Array mit flatMap() ausgeben lassen Java Basics - Anfänger-Themen 6
D Array-Liste nur einmal ausgeben Java Basics - Anfänger-Themen 8
arjoopy Kapselung Elemente aus Objekt-Array ausgeben Java Basics - Anfänger-Themen 8
S 2D array ausgeben Java Basics - Anfänger-Themen 8
D Array ausgeben Java Basics - Anfänger-Themen 5
J Array in JLabel ausgeben Java Basics - Anfänger-Themen 2
D Array Werte einlesen und ausgeben? Java Basics - Anfänger-Themen 8
G Objekt array befüllen und ausgeben Java Basics - Anfänger-Themen 3
B Array - nicht komplett ausgeben Java Basics - Anfänger-Themen 8
K array in toString des objektes ausgeben Java Basics - Anfänger-Themen 1
D Array richtig ausgeben Java Basics - Anfänger-Themen 6
L Array vorwärts und rückwärts ausgeben Java Basics - Anfänger-Themen 3
stylegangsta Anzahl der gefunden array Werte ausgeben Java Basics - Anfänger-Themen 6
L Primzahlen im Array ausgeben Java Basics - Anfänger-Themen 3
D Alle möglichen Kombinationen in einem Array ausgeben Java Basics - Anfänger-Themen 2
D Erste Schritte array aufsteigend sortieren und ausgeben Java Basics - Anfänger-Themen 17
D Array Paare ausgeben Java Basics - Anfänger-Themen 9
F Methoden Kontaktliste - String in einem Array suchen und ausgeben Java Basics - Anfänger-Themen 3
V Array zahlen eingeben und ausgeben Java Basics - Anfänger-Themen 5
S BSort Array ausgeben lassen Java Basics - Anfänger-Themen 6
G Array dynamisch ausgeben Java Basics - Anfänger-Themen 3
J Array sortiert ausgeben Java Basics - Anfänger-Themen 9
W Array nach String durchsuchen und Ausgeben Java Basics - Anfänger-Themen 8
B Datentypen Array ausgeben Java Basics - Anfänger-Themen 4
D Array schön ausgeben Java Basics - Anfänger-Themen 12
D SetText als Array ausgeben Java Basics - Anfänger-Themen 1
D Bestimmten Wert aus Array List ausgeben Java Basics - Anfänger-Themen 7
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
D Point-Array ausgeben Java Basics - Anfänger-Themen 2
K Eingaben in Array ausgeben Java Basics - Anfänger-Themen 3
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
C Array aus einer Methode zurückgeben und ausgeben Java Basics - Anfänger-Themen 1
P Ein Array mit der Eingaber der User füllen und ausgeben Java Basics - Anfänger-Themen 6
E Array Anzahl verschiedener Werte ausgeben Java Basics - Anfänger-Themen 3
S Array - index von Benutzer eingegebenen char ausgeben Java Basics - Anfänger-Themen 3
C Array - Werte speichern und ausgeben Java Basics - Anfänger-Themen 5
A Mehrdimensionalles Array in String ausgeben in Liste Java Basics - Anfänger-Themen 5
C Erste Schritte Array Werte Ausgeben Probleme mit variable Java Basics - Anfänger-Themen 21
A Methoden Array: ausgeben von einem Wörterbucheintrag Java Basics - Anfänger-Themen 4
D Array in for-Schleife ausgeben Java Basics - Anfänger-Themen 3
R Array: Mehrere Indizes für einen Wert ausgeben? Java Basics - Anfänger-Themen 4
D Erste Schritte Array in ListBox ausgeben Java Basics - Anfänger-Themen 9
L Array multiplizieren und ausgeben Java Basics - Anfänger-Themen 3
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
J Compiler-Fehler Array rückwärts ausgeben Java Basics - Anfänger-Themen 3
M Array List ausgeben Java Basics - Anfänger-Themen 13
D Arrays zusammenfügen und in einem Array ausgeben Java Basics - Anfänger-Themen 3
J 2d array ausgeben Java Basics - Anfänger-Themen 7
C Datentypen int array in String ausgeben Java Basics - Anfänger-Themen 20
H Wie kann ich jedes zweite Array Wert ausgeben lassen?? Java Basics - Anfänger-Themen 6
O Array mit unterschiedlichen Datentypen ausgeben... Java Basics - Anfänger-Themen 16
R Array in Textarea ausgeben Java Basics - Anfänger-Themen 3
Binary.Coder Array über println ausgeben Java Basics - Anfänger-Themen 18
S Array sortieren und ausgeben Java Basics - Anfänger-Themen 3
T Zahlen in Array speichern und ausgeben Java Basics - Anfänger-Themen 14
P Array.sort // Arrays ausgeben Java Basics - Anfänger-Themen 21
S mehere Vorkommnisse im String-Array ausgeben Java Basics - Anfänger-Themen 2
P Array sortiert ausgeben Java Basics - Anfänger-Themen 25
J Zweidimensionales Array durch ToString ausgeben lassen Java Basics - Anfänger-Themen 21
X Array im Konstruktor wie ausgeben? Java Basics - Anfänger-Themen 2
D Array in Diagramm ausgeben Java Basics - Anfänger-Themen 7
R array werte ausgeben/zugreifen Java Basics - Anfänger-Themen 8
T OOP Objekte erzeugen und in einem Array ausgeben. Java Basics - Anfänger-Themen 2
N ein Array auf eine JTextArea ausgeben Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben