[J2ME] Canvas i Midlet w jednej klasie

0

Witam

Piszę sobie taki programik w J2ME w którym potrzebuje wykorzystać [extendować] dwie klasy Canvas i Midlet, czy jest jakiś sposób żeby to wykonać, czytałem o "multiple inheritance" ale niestety nie wiem jak zastosować, a to co napisałem zwraca mi same błędy.

Mam na myśli coś takiego:
public class test extend MIDlet, Canvas{

}

0

Witam,
Nie można zastosować zarówno w javie jak i javaME wielokrotnego dziedziczenia. Poczytaj o tym w jednym z wielu tutoriali Javy. Jeżeli chodzi o klase MIDlet to musisz ją dziedziczyć w klasie głównej programu, ponieważ bez niej nie będzie działał midlet, a działanie programu zaczyna się wląśnie od klasy dziedziczącej po klasie MIDlet.
POZDRAWIAM

0

czytałem o tym dziedziczeniu przez interface'y itd. Chodzi mi raczej o schemat, jak to mam zrobić:

public class test extend Midlet implements [nazwa_interface'u np Canv ( zawierający tego całego Canvasa )]

?

0

Jeżeli można wiedzieć to co dokładnie chcesz zrobić?? Poza tym brakuje Ci w wyrazie "extend" jednej litery czyli powinno być "extends". Zrób oddzielną klase która dziedziczy po klasie Canvas, a "intrfejs nie jest klasą, ale zestawem wymagań, które muszą być spełnione, aby klasa została uznana za zgodną z danym interfejsem" - Java Podstawy Wydanie VIII. Czyli interfejs rozszerza daną klase o konkretne metody które znajdują się w interfejsie, a następnie musisz je zdefiniować. Nie mogą one również zawierać pól obiektowych ani implementować metod tym zajmuje się klasa która implementuje dany interfejs.

0

hmm, może przedstawię swój problem tak = ) :

  1. Mój program startuje jako klasyczny midlecik
  2. User wybiera proceed, ok [ cokolwiek ].
  3. Tutaj wkracza klasa, która extenduje Canvasa
  4. Wybiera sobie coś z klasy która extenduje Canvasa
  5. I tutaj chciałbym wrócić do klasycznego midletu.

da rade czy nie? :)

0

Nie wiem czy Cię zrozumiałem, ale czy chcesz po prostu uruchomić midlet następnie po wciśnieciu przycisku ma się coś narsować?

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class HelloWorld extends MIDlet implements CommandListener {

	MyCanvas myCanvas;
	Command commandMsg = new Command("ToggleMsg", Command.SCREEN, 1);
	Command commandExit = new Command("Exit", Command.EXIT, 99);
	
	public HelloWorld() {
		myCanvas = new MyCanvas();
		myCanvas.addCommand(commandExit);
		myCanvas.addCommand(commandMsg);
		myCanvas.setCommandListener(this);
		
	}

	protected void startApp() throws MIDletStateChangeException {
		Display.getDisplay(this).setCurrent(myCanvas);
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {	}

	protected void pauseApp() {	}


	public void commandAction(Command arg0, Displayable arg1) {
		
		if(arg0 == commandExit) {
			try {
				destroyApp(false);
				notifyDestroyed();
			} catch (MIDletStateChangeException e) {
				e.printStackTrace();
			}
		}else
			if(arg0 == commandMsg) {
				myCanvas.ToggleMsg();
			}
	}

}

//Klasa dziedzicząca po Canvas
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;

public class MyCanvas extends Canvas {

	private boolean SayHello = true;
	
	void ToggleMsg() {
		SayHello = !SayHello;
		repaint();
	}
	
	protected void paint(Graphics arg0) {
		int width = getWidth();
		int height = getHeight();
		
		arg0.setColor(0xFFFFFF);
		arg0.fillRect(0, 0, width, height);
		
		if(SayHello) {
			Font font = arg0.getFont();
			int fontWidth = font.stringWidth("Hello World!!");
			int fontHeight = font.getHeight();
			arg0.setColor(255, 0, 0);
			arg0.setFont(font);
			arg0.drawString("Hello World!!", (width-fontWidth)/2, (height-fontHeight)/2, arg0.TOP | arg0.LEFT);
		}
	}

}

 

POZDRAWIAM

0

znalazłem na roseindia taki programik który tworzy całkiem fajną galerie obrazków [ i stworzona została ona przy pomocy canvasa właśnie ], mój program startuje z midletu [ klasa która extenduje midlet ] użytkownik wybiera sobie którąś opcje [ powiedzmy next ] i przenosi go do tej galerii [ klasa extenduje canvasa ], z której z kolei chciałbym żeby user wybrał sobie powiedzmy 5 obrazek i przeszedł do następnego Forma albo list'a

1 użytkowników online, w tym zalogowanych: 0, gości: 1