wie geht Klassenvererbung von Canvas Klassen

D

DaNew

Gast
Hallo,

ich möchte in meinem MIDlet zwei Arten von Diagrammen anzeigen können, einmal ein xyDiagramm und ein BalkenDiagramm. Alle Klassen sollen in der MIDlet Klasse liegen.

Da diese beiden Klassen einiges gemeinsam haben, wie die Längen und Positionen der Achsen usw., dachte ich, es wäre gut eine Klasse Diagramm zu erstellen, in der alle Gemeinsamkeiten schon berechnet werden.

Von der Klasse Diagramm sollen dann die beiden neuen Klassen xyDiagramm und BalkenDiagramm erben.

Wie mache ich das am besten? Ich krieg das einfach nicht hin

Bis jetzt habe ich die Diagramm-Klassen erstellt:
public class Diagramm extends Canvas

public class xyDiagramm extends Diagramm
und
public class BalkenDiagramm extends Diagramm

Jede der abgeleiteten Klassen hat eine eigene paint Methode.

Kann mir mal jemand bitte einen Pseudocode geben, wie man das genau macht?
 
Zuletzt bearbeitet von einem Moderator:
D

DaNew

Gast
Damit es verständlicher wird, was ich brauche, hier mal Code:

Java:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class DiagrammMIDlet extends MIDlet implements CommandListener
{
    private Display		display;
	private Diagramm	Diag;
	private BalkenDiagramm	balkDiag;
	private XYDiagramm	xyDiag;
	
	//Diagramm balkDiag	= new BalkenDiagramm(this); ???
	//Diagramm xyDiag	= new XYDiagramm(this);		???


	public DiagrammMIDlet()
	{
		display		= Display.getDisplay(this);
//		balkDiag	= BalkenDiagramm(this);
//		xyDiag		= XYDiagramm(this);

//		Diag = new Diagramm(this);
//		Diag.addCommand(cmdZurück);
//		Diag.setCommandListener(this);
		balkDiag = new BalkenDiagramm(this);
		balkDiag.addCommand(cmdZurück);
		balkDiag.setCommandListener(this);

		xyDiag = new BalkenDiagramm(this);
		xyDiag.addCommand(cmdZurück);
		xyDiag.setCommandListener(this);

	}

	public void commandAction(Command c, Displayable d){}
	
	public void startApp()	{}
    public void pauseApp() {}
    public void destroyApp(boolean unconditional) {}
	public void exitMIDlet()
	{
		destroyApp(false);
		notifyDestroyed();
	}
}

class BalkenDiagramm extends Diagramm
{
	private DiagrammMIDlet midlet;

	public BalkenDiagramm(DiagrammMIDlet midlet)
	{//*<- hier bekomme ich von NetBeans folgende Meldung, die ich nicht verstehe:
	//constructor Diagramm in class Diagramm cannot be applied to given types
	//required: DiagrammMidlet
	//found:	no arguments
//		super(true);
		this.midlet = midlet;
	}
	protected void paint(Graphics g)
	{
		//zeichne das Balkendiagramm
	}// Ende von protected void paint(Graphics g)

}

class XYDiagramm extends Diagramm
{
	private DiagrammMIDlet midlet;

	public xyDiagramm(DiagrammMIDlet midlet)
	{
//		super(true);
		this.midlet = midlet;
	}
	protected void paint(Graphics g)
	{
		//zeichne das xy-Diagramm
	}// Ende von protected void paint(Graphics g)

}


class Diagramm extends Canvas //implements CommandListener
{
	private DiagrammMIDlet midlet;
	Font font;
	// Variablen, die alle Diagramme brauchen
	public Diagramm(DiagrammMIDlet midlet)
	{
		this.midlet = midlet;
		// Initialisierungen, die alle Diagramme brauchen
	}
	protected void paint(Graphics g)
	{
		// leer, da die abgeleiteten Klassen eigene paint-Methoden haben
	}// Ende von protected void paint(Graphics g)

}
 
S

SlaterB

Gast
wenn der einzige Diagramm-Konstruktor
Diagramm(DiagrammMIDlet midlet)
lautet,
dann kannst du in den Subklasse doch nicht
super(true);
schreiben oder gar nix = super(),
sondern musst das midlet an super übergeben, die Subklassen müssen das dann auch nicht alle selber speichern

was ist ansonsten eigentlich das Problem?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Android Wieso geht getApplicationContext() bei Toast, aber nicht bei AlertDialog.Builder? Android & Cross-Platform Mobile Apps 36
K Log.v geht nicht Android & Cross-Platform Mobile Apps 4
J R.string.(variable) geht das Android & Cross-Platform Mobile Apps 3
B Timer geht nicht Android & Cross-Platform Mobile Apps 2
L Android Apache POI: Datei speichern geht nicht Android & Cross-Platform Mobile Apps 1
T Button geht net... Android & Cross-Platform Mobile Apps 2
D Hilfe! es geht um Buttons und Sounds Android & Cross-Platform Mobile Apps 14
S Android LogCat Ausgaben in Schleife geht nicht? Android & Cross-Platform Mobile Apps 2
K Android Alarm Manager (Wakelock? ) geht nicht Android & Cross-Platform Mobile Apps 4
N Android Hilfe string to float geht nicht... Android & Cross-Platform Mobile Apps 4
P Android Programm stürzt ab - Es geht um Netzwerk Android & Cross-Platform Mobile Apps 5
R Meine arctan-Methode geht nicht Android & Cross-Platform Mobile Apps 6
X Anfängerfrage : Form und CommandListener - Warum geht das nicht? Android & Cross-Platform Mobile Apps 5
Arif Android Canvas wird nicht gezeichnet? Android & Cross-Platform Mobile Apps 0
Dechasa Android Android - Canvas NullpointException Android & Cross-Platform Mobile Apps 2
Z Canvas onDraw() Variablen muss in der Methode initialisiert werden Android & Cross-Platform Mobile Apps 1
F Mit Canvas zeichen und durch einen Timer aktualiesieren Android & Cross-Platform Mobile Apps 1
J Canvas mit dem Accelorometersensor bewegen Android & Cross-Platform Mobile Apps 0
E Android Zeichnen auf Canvas - Teilbereich als Bild speichern Android & Cross-Platform Mobile Apps 3
B onDraw Canvas jede Millisekunde aufrufen? Android & Cross-Platform Mobile Apps 12
G canvas in view anzeigen Android & Cross-Platform Mobile Apps 10
S Android Canvas - drawText - Update Text in ActionListener Android & Cross-Platform Mobile Apps 8
B Java ME Canvas Android & Cross-Platform Mobile Apps 2
J Java ME Canvas Klasse Gameloop und Funktion Android & Cross-Platform Mobile Apps 2
B Java ME Leere Canvas Seite Android & Cross-Platform Mobile Apps 21
P Java ME Texteingabe Canvas Android & Cross-Platform Mobile Apps 2
U Probleme mit der drawString Methode bei Canvas Android & Cross-Platform Mobile Apps 8
H Canvas kann nichts auf Graphics drawen Android & Cross-Platform Mobile Apps 3
M Textfeld in Canvas, implementation der keys aendern Android & Cross-Platform Mobile Apps 8
M Text in Canvas scrollen lassen Android & Cross-Platform Mobile Apps 13
M Wie in einer anderen "nicht canvas" klasse zeichne Android & Cross-Platform Mobile Apps 5
U ein texteingabefeld auf einem Canvas . Android & Cross-Platform Mobile Apps 2
A Problem: Canvas-Grösse Motorola RAZR v3r Android & Cross-Platform Mobile Apps 8
F Canvas Stringlänge Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben