Problem mit Java für dummies

D

DarkKnight44300

Gast
Hallo zusammen,

ich versuche mir momentan im Zusammenhang mit meinem Studium die Java-Programmierung selbst bei zu bringen.
Lieder verfüge ich über keinerlei Vorkenntnisse, also habe ich mir das Buch Java für Dummies besorgt. Im 4. Kapitel soll man ein Applet schreiben das unterschiedliche Shapes in einem Label wiedergibt. Ich vermute der Quellcode sieht etwas unüblich aus, weil das gesamte Applet mit seinen unterklassen in einer Klasse geschrieben wurde. Im Buch steht das wäre am Anfang leichter.

So nun zu meinem Problem:
Eclipse zeigt mir eigentlich keine wirklichen Fehler mehr an (oder ich bin zu blöd es zu merken). Aber wenn ich das Applet ausführe wird alles gezeichnet bis auf den Circle. Dessen umfang und Flächen Inhalt wird jedoch berechnet. hier der Code

Java:
import java.applet.Applet;
import java.awt.*;

/** Shapes - Ein Applet zum kennenlernen von Vererbungen.
 * @version 0.1, 24.11.2010
 * @author Felix
 */

public class ShapeApplet extends Applet {
	public void init(){
		Rectgl r = new Rectgl(10,5, Color.red);
		Square s = new Square(10, Color.blue);
		Circle c = new Circle(20, Color.yellow);
		Square s2 = new Square(40, Color.green);
		add(r);
		add(s);
		add(c);
		add(s2);
		add(new ShapeLabel(r));
		add(new ShapeLabel(s));
		add(new ShapeLabel(c));
		add(new ShapeLabel(s2));
	}

}

 class Rectgl extends Shape {
	 
	/* Konstruktor */
	public Rectgl(int width, int height, Color c) {
		myDimension.width = width;
		myDimension.height = height;
		setColor(c);
	}
	
	/* Shape Zeichnen */
	public void paint(Graphics g) {
		g.fillRect(0, 0, myDimension.width, myDimension.height);
	}
	
	/* Größe des Shapes bestimmen */
	public double getArea() {
		return myDimension.width * myDimension.height;
	}
	
	/* Umfang des Shapes bestimmen */
	public double getPerimeter() {
		return (myDimension.width + myDimension.height) * 2;
	}
	
	/* Sting zur Bezeichnung des Shapes ausgeben*/
	public String getKind () {
		return "Rectangle";
	}
}


class Square extends Rectgl {
	/* Konstruktor*/
	public Square(int side, Color c) {
		super(side, side, c);
	}
	/* Sting zur Bezeichnung des Shapes ausgeben*/
	public String getKind () {
		return "Square";
	}
}

 abstract class Shape extends Canvas {
	Dimension dimension_ = new Dimension();
	Dimension myDimension = new Dimension();
	public void Shape() {
	}
	public Color getColor() {
		return getForeground();
	}
	public void setColor(Color c) {
		setForeground(c);
	}
	public void paint(Graphics g) {
	}
	public double getArea() {
		return 0;
	}
	public double getPerimeter() {
		return 0;
	}
	public String getKind() {
		return "unknown Shape";
	}
	public Dimension preferredSize() {
		return myDimension;
	}
	public Dimension minimumSize() {
		return myDimension;
	}
}


class ShapeLabel extends TextArea {
	public ShapeLabel(Shape s) {
		super("Ich bin ein " + s.getKind()+
				"/n Mein Umfang betraegt " + Double.toString(s.getPerimeter())+
				"/n Meine Fläche betraegt " + Double.toString(s.getArea()));
	}
}

class Circle extends Shape{
	private int radius_;
	/* Konstruktor */
	public Circle(int radius, Color c) {
		radius_ = radius;
		dimension_.width = dimension_.height = 2 * radius;
		setColor(c);
	}
	/* Shape Zeichnen */
	public void paint(Graphics g) {
		g.fillArc(0, 0,(2*radius_),(2*radius_), 0, 360);
	}
	/* Groesse des Shapes bestimmen */
	public double getArea() {
		return Math.PI * (radius_ * radius_);
	}
	/* Umfang des Shapes bestimmen */
	public double getPerimeter() {
		return 2 * Math.PI * radius_;
	}
	public String getKind () {
		return "Circle";
	}
}

Vielleicht könnt ihr mir ja helfen.

Schon mal Danke im Voraus.
 

hansmueller

Bekanntes Mitglied
Hallo,

der Konstruktor für den Circle muß so aussehen:
Java:
public Circle(int radius, Color c)
	{
		System.out.println("Konstruktor Circle");
		radius_ = radius;
		dimension_.width = dimension_.height = 2 * radius;
		setColor(c);
				
		myDimension = dimension_;		
		
	}

Wenn ich richtig liege, dann fragt der Layoutmanager des Applets (dürfte standardmäßig der FlowLayout-Manager sein) die preferredSize() und minimumSize() deiner Shape-Klasse ab. Und da myDimension bisher in deiner Circle-Klasse nicht gesetzt wurde und somit null ist, hatte dieses Element keine Größe.

Wenn ich mir den Code so anschaue, solltest du dir besser ein anderes Buch zulegen. Für Anfänger ist das glaube ich nicht so toll. Such einfach mal hier im Forum. Es gibt ein paar Themen, die Bücher vorschlagen bzw. empfehlen.

MfG
hansmueller
 

Michael...

Top Contributor
Du hast in der Klasse Shape zwei Instanzvariablen
Code:
dimension_
und
Code:
myDimension
definiert. Vermutlich dienen beiden dem selben Zweck und eine davon (erstere) sollte rausgeschmissen werden.
In Deinem Fall wird die Variable myDimension gegenüber dem LayoutManager zur Vermittlung des Platzbedarfs genutzt. dimension_ wird nicht genutzt aber in der Klasse Circle gesetzt. ==> Der LayoutManager bekommt die Info, das Circle eine Fläche von 0x0 benötigt ==> man sieht nix ;-)

Grundsätzlich denke ich es gibt bessere Lektüre für den Einstieg in Java, als das von Dir erwähnte Buch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J "travelling salesman problem" mit Java Editor Java Basics - Anfänger-Themen 17
C Two-Center Problem in Java Java Basics - Anfänger-Themen 0
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12
L Java reset button Problem Java Basics - Anfänger-Themen 3
L Java reset button Problem Java Basics - Anfänger-Themen 9
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
Amelie Java Problem Java Basics - Anfänger-Themen 2
T eclipse mit java 9 Problem? Java Basics - Anfänger-Themen 5
B problem mit java Java Basics - Anfänger-Themen 15
Z Problem mit "Random" in Java Java Basics - Anfänger-Themen 12
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
A Problem eines Anfängers bei Java Java Basics - Anfänger-Themen 6
O Compiler-Fehler Ein weiteres Java Problem Java Basics - Anfänger-Themen 3
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
H Interface Problem mit Java Editor Java Basics - Anfänger-Themen 15
J Problem mit java Dos-Applikation Java Basics - Anfänger-Themen 3
M Problem/Unsicherheit bei Java-Aufgaben Java Basics - Anfänger-Themen 11
G Problem: Java Projekt als ausführbare Jar Exportieren (Eclipse) Java Basics - Anfänger-Themen 10
K Java Projekt als ausführbare Jar Exportieren (Eclipse) Problem Java Basics - Anfänger-Themen 24
D Erste Schritte Problem mit dem Java-Editor Eclipse [Frage] Java Basics - Anfänger-Themen 13
P Tag der Zeitumstellung Sommer->Winterzeit (Java Calendar) Problem Java Basics - Anfänger-Themen 5
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
J Java Daten von Konsole einlesen (Spezielles Problem) Java Basics - Anfänger-Themen 6
R Problem mit Java-Chat Java Basics - Anfänger-Themen 2
KranzKrone Erste Schritte Java MVC Problem Java Basics - Anfänger-Themen 3
T Problem mit java-editor + Scanner Java Basics - Anfänger-Themen 9
C JDK installieren Habe ein Problem bei Java install Java Basics - Anfänger-Themen 4
B JAVA Package Problem Java Basics - Anfänger-Themen 8
D Java Date/Calendar Problem Java Basics - Anfänger-Themen 4
V Java Chat Programm Problem mit IP Addresse Java Basics - Anfänger-Themen 7
J Habe problem mit Java Java Basics - Anfänger-Themen 2
B Problem mit Dr. Java Java Basics - Anfänger-Themen 15
T Problem bei BeatBox aus Java-Von Kopf bis Fuß Java Basics - Anfänger-Themen 3
P Problem- Java Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 9
H JDK installieren Mac Problem mit Java SE 1.7 Java Basics - Anfänger-Themen 5
I Java von Kopf bis Fuß: Ratespiel-Problem Java Basics - Anfänger-Themen 20
P Problem :Java-Dateien in einem Ordner ablegen Java Basics - Anfänger-Themen 10
M Java String " einfügen Problem Java Basics - Anfänger-Themen 2
G Java Dezimal Zahlen Internazialisation Problem Java Basics - Anfänger-Themen 7
I Problem mit Java Text Area Java Basics - Anfänger-Themen 14
S Problem mit java.awt Java Basics - Anfänger-Themen 3
S java versionen problem Java Basics - Anfänger-Themen 20
Z Problem mit Tutorial - Finde Kon.java nicht Java Basics - Anfänger-Themen 11
B Problem mit Java XML Java Basics - Anfänger-Themen 6
B Problem mit XML und Java Java Basics - Anfänger-Themen 2
F Methoden Java Freihand Problem Java Basics - Anfänger-Themen 4
turmaline Java Virtual Machine Launcher Problem Java Basics - Anfänger-Themen 1
J Java Installations/Deinstallations Problem. Java Basics - Anfänger-Themen 5
D Problem mit java.io.* Java Basics - Anfänger-Themen 6
M Problem bei einer Java-Aufgabe (Fakultäten) Java Basics - Anfänger-Themen 5
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
K Java Array Problem Java Basics - Anfänger-Themen 3
M java.lang.NumberFormatException-Problem Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
J Problem mit Ausführen von Java-Dateien Java Basics - Anfänger-Themen 5
A Problem bei der Division mit Java Java Basics - Anfänger-Themen 4
E Datentypen ein java problem rekursiv loesen Java Basics - Anfänger-Themen 2
S Java Verständnis Problem Methoden etc. Java Basics - Anfänger-Themen 22
E Java hashCode equals Problem Java Basics - Anfänger-Themen 2
D Problem bei Java - Aufgabe Java Basics - Anfänger-Themen 7
B in & out class problem (java anfängeR) Java Basics - Anfänger-Themen 5
F Java Variablen Problem Java Basics - Anfänger-Themen 8
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
L Java [Beginner] Problem Java Basics - Anfänger-Themen 8
K java.util.ConcurrentModificationException problem in der Logik? Quaxli-Tutorial Java Basics - Anfänger-Themen 9
D Java per Konsole oder Batch öffnen - Problem Java Basics - Anfänger-Themen 4
S setVisible Problem bei java.awt Java Basics - Anfänger-Themen 9
J Anfänger-Problem: Rechnen mit Java Java Basics - Anfänger-Themen 3
T Java Bilderverwaltung - Image Fetcher Problem Java Basics - Anfänger-Themen 4
V Problem bei java Application Java Basics - Anfänger-Themen 3
B Java Desktop Wecker problem Java Basics - Anfänger-Themen 3
? Konsolenprogramm hat Problem mit java.awt oder javax.swing Java Basics - Anfänger-Themen 7
M Problem mit dem Klassen aus dem java.io Paket Java Basics - Anfänger-Themen 9
E java.util.ConcurrentModificationException Problem Java Basics - Anfänger-Themen 5
G java.io.File problem Java Basics - Anfänger-Themen 5
R Java Problem (mit NetBeans) - html gibt nur java logo aus Java Basics - Anfänger-Themen 7
M Problem mit Java unter Vista 64 Java Basics - Anfänger-Themen 4
S Seltsames Java Problem Java Basics - Anfänger-Themen 3
A Matisse oder Java Problem: JPanels werden riesig ? Java Basics - Anfänger-Themen 3
S Ausgabe auf der Java-Console (Java Problem) Java Basics - Anfänger-Themen 13
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
Nexu [JAVA] Problem mit den Fenstern Java Basics - Anfänger-Themen 2
D Problem bei einer Formel (Bin Java Neuling) Java Basics - Anfänger-Themen 3
D Java Rechner und Einlesen Problem (mit hasNext) Java Basics - Anfänger-Themen 2
G JAVA KARA PROBLEM Java Basics - Anfänger-Themen 4
F Problem mit auführen einer .bat Datei aus Java heraus Java Basics - Anfänger-Themen 24
I Problem mit import java.awt.*; Java Basics - Anfänger-Themen 5
J Java GUI Problem (throws.) Java Basics - Anfänger-Themen 3
S Problem beim kompilieren mit Java 1.4 Java Basics - Anfänger-Themen 4
A problem mit java.awt Java Basics - Anfänger-Themen 17
K Problem mit javax/servlet/http/HttpServletRequest.java Java Basics - Anfänger-Themen 2
N Problem mit MySql und Java Java Basics - Anfänger-Themen 12
J Problem mit Java Zahlen Spiel Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben