# get Methoden



## stban (3. Apr 2007)

Hallo,

Ich versuche die get Methoden zu benutzen, bis vor kurzen hatte ich kein Problem inszwischen bekomme immer folgenden Fehlern

ALERT: No such method getWidth.()I
ALERT: No such method getHeight.()I
ALERT: No such method setLayout.(I)V

Wie ich sehe, die Methoden können nich gefunden werden, dann welche Bibliothek muss ich anbinden?
Freue ich mich auf irgendwelche Hinweise oder Tipps.

stban


----------



## SlaterB (3. Apr 2007)

> bis vor kurzen hatte ich kein Problem 

was hat sich denn geändert?

und um welche Klasse gehts überhaupt?


----------



## JPKI (3. Apr 2007)

setLayout() hab ich im Bezug auf die Micro-Edition noch nie gehört...
Und die getWidth() und getHeight()-Methoden gibt's nur in der Klasse *javax.microedition.lcdui.Canvas* bzw. deren Unterklasse *javax.microedition.lcdui.game.GameCanvas*. Edit: Genau kann ich das gerade nicht sagen, aber die Methoden gibt es evtl. noch in *javax.microedition.lcdui.Form*

Poste mal Code! Welche Klassen benutzt du??


----------



## stban (3. Apr 2007)

Hallo, 

Danke für die schnelle Reaktion, hier ist die Quellcode

```
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
//import java.util.*;

public class TestMIDlet extends MIDlet {
	private Display display;
	private Form form;
	public TestMIDlet() {
		// TODO Auto-generated constructor stub
		display = Display.getDisplay(this);
		form = new Form("Erster Form");
                //FEHLER
		//System.out.println("hohe: "+form.getHeight());
		//System.out.println("breit: "+form.getWidth());
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
		// TODO Auto-generated method stub

	}

	protected void pauseApp() {
		// TODO Auto-generated method stub

	}

	protected void startApp() throws MIDletStateChangeException {
		// TODO Auto-generated method stub
		display.setCurrent(form);
	}

}
```

Wie gesagt, wenn Hohe und Breite meinem Screen (hier form) haben möchte kommt diesen ALERT Meldung.
Ich weiss auch das die gets Methode seit MIDP 2.0 benutzen kann.
Weitere Hinweise sind willkommen.
Stban


----------



## pogo (3. Apr 2007)

kannst du das nicht einfach ohne form verwenden, also nur getWidth()?


----------



## JPKI (4. Apr 2007)

Ääääääh...
Ein MIDlet braucht ja auch keinen Konstruktor!
Du musst das, was in deinem Code im Konstruktor steht in die *startApp()*-Methode verlagern!!


----------



## stev.glasow (4. Apr 2007)

JPKI hat gesagt.:
			
		

> Ääääääh...
> Ein MIDlet braucht ja auch keinen Konstruktor!
> Du musst das, was in deinem Code im Konstruktor steht in die *startApp()*-Methode verlagern!!


Hö, wieso? Was hat das damit zu tun?




			
				stban hat gesagt.:
			
		

> Ich weiss auch das die gets Methode seit MIDP 2.0 benutzen kann.
> Weitere Hinweise sind willkommen.


Kompilierst  du das evltl. auch mit der MIDP 1.0 ? Bei mir hier läuft dein Code nämlich(sowohl MIDP 2.0 als auch MIDP 2.1), er gibt auch Höhe und Breite aus. Nur wenn ich halt mit MIDP 1.0 kompiliere bekomm ich den gleichen Fehler.


----------



## JPKI (4. Apr 2007)

Verzeihung, ich hab mich vertan. Ich hab mal folgenden Code entwickelt und getestet:

```
import javax.microedition.midlet.*;

public class TestMIDlet extends MIDlet {

  public TestMIDlet() {

   System.out.println("Konstruktor aufgerufen.");
 }

  public void startApp() {

   System.out.println("startApp() aufgerufen.");
 }

  public void pauseApp() {

   System.out.println("pauseApp() aufgerufen.");
 }

  public void destroyApp(boolean unconditional) {

   System.out.println("destroyApp(boolean) aufgerufen.");
 }
}
```
Und die Ausgabe ist:

```
Konstruktor aufgerufen.
startApp() aufgerufen.
pauseApp() aufgerufen.
startApp() aufgerufen.
destroyApp(boolean) aufgerufen.
```
 (Ich hab auch mal mittendrin den Emulator pausieren lassen.) War mein Fehler.   :wink:

Dennoch meine ich, dass ein MIDlet nicht unbedingt einen Konstruktor benötigt, da ja immer *startApp()* aufgerufen wird.


----------



## stev.glasow (4. Apr 2007)

Worauf willst du jetzt mit deinem Code und der Ausgabe hinaus?

Und ne, braucht man nicht, aber man muss auch nicht alles in die startApp() tuen wie du gesagt hast. Das hat mit dem Problem nix zu tun.


----------



## JPKI (4. Apr 2007)

Weiss ich. Ich hab nur noch nie ein MIDlet mit Konstruktor entwickelt. Und was das Problem angeht, glaube ich auch dass du da oben die Lösung gefunden hast  .


----------

