Compiler-Fehler Packages fehlen?

babuschka

Top Contributor
Hi,

in meinem neuesten Codebeispiel werden zwei neue Klassen verwendet, die mit folgendem Code importiert werden:
Java:
import com.burdbrain.drawings.*;
import com.burdbrain.frames.ArtFrame;

Offensichtlich sind das zwei Klassen, die der Autor meines Lernbuches Barry Burd erstellt hat. Das Problem ist: Ich bekomme bei der Ausführung des gesamten Codes einen Compiler-Fehler, der darauf zurückgeht, daß meine IDE wohl diese zwei Packages nicht zur Verfügung hat.
Der gesamte Code geht so:
Java:
// Diese beiden Packages müssen importiert werden, damit die Namen später abgekürzt werden können.
import com.burdbrain.drawings.*;
import com.burdbrain.frames.ArtFrame;

class ShowFrame {
	public static void main(String[] args) {
		// Es wird eine neue Instanz der Klasse >ArtFrame< generiert.
		ArtFrame artFrame = new ArtFrame(new Drawing());
		
		// Diese Instanz der Klasse >ÁrtFrame< hat die Breite 200 (Pixel) und die Höhe 100 (Pixel).
		artFrame.setSize(200, 100);
		// Der Frame ist auch sichtbar (standardmäßig nicht).
		artFrame.setVisible(true);
	}
}

Die beiden import-Zeilen werden schon angekreuzt und die detailliertere Fehlerausgabe deutet auch auf die Nichtverfügbarkeit dieser Packages hin.
Kann mir einer sagen, was man da machen kann?
Danke!
Gruß,

Javaswillerdenn

P.S.: Ich denke, auch dieses hat sich erledigt. Die beiden Packages werden in den nächsten beiden Codebeispielen definiert. Na toll, das könnte man ja im Text auch erwähnen... okay, damit geht es sicherlich.
 
Hi,

nein, leider hat es sich doch noch nicht erledigt: Ich kriege einen Compiler-Fehler in der aufrufenden Klasse, aber ohne jegliche Zusatzinformationen und mit Verweis auf die Zeile, wo der Kopf der main-Methode steht, sonst nix. Der Fehler muss wohl in einer der beiden Klassen stecken, die die packages definieren. Da wird mir jew. die Zeile mit der package-Deklaration angekreuzt, aber ich kann da nichts weiter draus erkennen.
Ich poste mal hier den ganzen Kladderadatsch:
Java:
// Hier wird das erste package definiert, das von >ShowFrame< importiert wird.
package com.burdbrain.drawings;

import java.awt.Graphics;

public class Drawing {
	// Die Klasse >Drawing< (muss >public< sein, damit sie für den anderen Code verwendbar wird)
	// enthält diese ebenfalls öffentlich zugänglichen Int-Werte.
	public int x = 40, y = 40, width = 40, height = 40;
	
	// Die zu diesem Objekt gehörende Methode >paint< hat einen Parameter >g<, der zur Klasse >java.awt.Graphics< gehört...
	public void paint(Graphics g) {
		// ...und nutzt die Methode >drawOval<, die wiederum auf die vorher definierten int-Werte zurückgreift.
		g.drawOval(x, y, width, height);
	}
}

Java:
// Hier wird das zweite package definiert, das von >ShowFrame< importiert wird.
package com.burdbrain.frames;

import com.burdbrain.drawings.*;
import javax.swing.JFrame;
import java.awt.Graphics;

public class ArtFrame extends JFrame {
	private static final long serialVersionUID = 1L;
	
	Drawing drawing;
	
	// Dieses ist nur ein Konstruktor, der das Drawing-Objekt (anderer Code) benutzt.
	public ArtFrame(Drawing drawing) {
		this.drawing = drawing;
		setTitle("Abstrakte Kunst");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	
	// Die Methode >paint< des ArtFrame-Objektes hat einen Parameter g, der zur Klasse <java.awt.Graphics< gehört...
	public void paint(Graphics g) {
		// ...und tut nichts anderes als die paint-Methode des Drawings-Objekts aufzurufen.
		drawing.paint(g);
	}
	}

Java:
// Diese beiden Packages müssen importiert werden, damit die Namen später abgekürzt werden können.
import com.burdbrain.drawings.*;
import com.burdbrain.frames.ArtFrame;

class ShowFrame {
	public static void main(String[] args) {
		// Es wird eine neue Instanz der Klasse >ArtFrame< generiert.
		ArtFrame artFrame = new ArtFrame(new Drawing());
		
		// Diese Instanz der Klasse >ÁrtFrame< hat die Breite 200 (Pixel) und die Höhe 100 (Pixel).
		artFrame.setSize(200, 100);
		// Der Frame ist auch sichtbar (standardmäßig nicht).
		artFrame.setVisible(true);
	}
}

Kann mir einer hier den Fehler sagen?
Danke!
Gruß,

Javaswillerdenn
 
Hi,

Letzteres wird's wohl sein - der CLASSPATH muss wohl definiert werden, dazu schweigt sich mein Lernbuch aus. Ich bin entzückt ;-)
Gut, ich werd mal nach einer Anleitung suchen, wie ich den CLASSPATH definiere.
Danke!
Gruß,

Javaswillerdenn
 
Okay,

ausprobieren hilft doch manchmal auch. In Eclipse Juno hab ich mich zu >> Refactor -> move << durchgeklickt und dann für jede dieser beiden Klassen jew. ein neues Package erstellt.
Jetzt funktioniert es.
Gruß,

Javaswillerdenn
 

Neue Themen


Zurück
Oben