public class Feld extends JLabel

Brucks

Grünschnabel
Hallo,

ich habe die Klasse Feld aus der Klasse JLabel abgeleitet.

Code:
package pktRobot;

import javax.swing.JLabel;

public class Feld extends JLabel {

	private boolean betretbar;
		
	public void setBetretbar(boolean pBetretbar) {
		betretbar = pBetretbar;
	}
	
	public boolean getBetretbar() {
		return betretbar;
	}
}

Nun habe ich das Problem, dass ich an deren Methoden nicht herankomme. Der Grund dafür ist mir nicht so ganz klar.

Code:
package pktRobot;

import javax.swing.*;
import java.awt.*;

public class Spielfeld extends JPanel {

	private Feld yz = new Feld();
	private JLabel z = new JLabel();
	
	public Spielfeld(int pBreite, int pHoehe) {
		yz.setSize(10,10);  // Fehler: Die Methode setSize(int, int) ist für den Typ Feld nicht definiert (undefined)
		z.setSize(10,10);   // funktioniert
	}
}

Warum darf z setSize aufrufen und yz nicht? Verstehe nicht so ganz, was ich faslch gemacht habe. Wäre nett, wenn mir jemand weiterhelfen könnte.

Danke im Voraus
Brucks
 
Zuletzt bearbeitet:
Ist das wirklich dein vollständiger Quelltext?

In dem Falle fehlt dir noch ein Import.

du hast deine Feldklasse ins Package pktRobot gelegt. Du bindest das Package aber im zweiten Quelltext nirgendwo ein. Normalerweise müsste dein Compiler an der Stelle allerdings schon meckern, weil er die Klasse Feld nicht finden kann.


Grüße
Daniel
 
@Laocoon:
Tut mir Leid, war ein bißchen schlampig beim Kopieren. Beide Klassen sind im Package pktRobot.

@Tobias:
Es ist wirklich seltsam. Ich verwende Eclipse 3.1 und sobald ich nach dem Objektnamen den Punkt setze, werden mir alle verfügbaren Methoden angeboten, inklusive setSize, setLocation, setBorder, ... Dies ist auch bei Objekten vom Typ Feld der Fall. Die Fehlermeldung kommt dann erst, wenn ich den Code speichere. Dann aber auch bei setSize, setLocation, setBorder, ...
 
Vielen Dank für die Hilfe. Es ist wirklich seltsam, ich habe beide Klassen nochmal neu geschrieben - den Code neu eingetippt, nicht kopiert - und siehe da, alles funktioniert. Entweder ist mir im ursprünglichen Code irgendwo ein kleiner Fehler reingerutscht, den ich immer übersehen habe, oder mein Eclipse Projekt hatte irgendwie einen Hänger. Danke nochmal für die schnellen Antworten.
 
Zurück