J2me
Estoy haciendo mi primera aplicación con J2ME, y tengo un problemilla, no consigo pasar de una pantalla a otra. He leído que esto se hace con la sentencia:
display.setCurrent(NombreClase);
Pero me da el siguiente error de compilación:
"Incompatible type for method. Can't convert VerificarUsuario to javax.microedition.lcdui.Displayable."
El código de la pantalla inicial es el siguiente, y la clase VerificarUsuario es la pantalla que quiero que aparezca(el código de esta segunda pantalla es casi igual que el de la primera).
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class CitaMov extends MIDlet implements CommandListener
{
// Declaramos el gestor de ventana para este MIDlet
Display display;
Form Formulario;
Image imagen;
String Titulo = "Evita las esperas";
VerificarUsuario tVerificarUsuario;
// Comandos de la pantalla que gestiona este MIDlet
static final Command comandoAtras = new Command("Salir", Command.EXIT, 1);
static final Command comandoEntrar = new Command("Entrar", Command.SCREEN, 1);
// Objetos que constituyen la pantalla del MIDlet
String present = "CITAMOV 1.0";
// Método Constructor
public CitaMov()
{
try
{
imagen = Image.createImage("/Tortilla.png");
}
catch(Exception e) {
System.out.println("Error: " + e.getMessage());
}
Formulario = new Form("EJEMPLO");
ImageItem dibujito = new ImageItem("",imagen,ImageItem.LAYOUT_RIGHT,"");
Formulario.append(Titulo);
Formulario.append(dibujito);
Formulario.addCommand(comandoAtras);
Formulario.addCommand(comandoEntrar);
Formulario.setCommandListener(this);
System.out.println("MIDlet Creado");
}
// Método startApp()
public void startApp() throws MIDletStateChangeException
{
display = Display.getDisplay(this);
display.setCurrent(Formulario);
System.out.println("MIDlet Iniciado");
}
// Método pauseApp()
public void pauseApp()
{
// Sin código ya que en este proceso en concreto no hará falta
System.out.println("MIDlet en pausa");
}
// Método destroyApp()
public void destroyApp(boolean unconditional)
{
System.out.println("MIDlet Destruido");
}
// Método Gestor de Eventos para la pantalla de Preguntas
public void commandAction(Command c, Displayable d)
{
if (c == comandoAtras)
{
display = null;
destroyApp(true);
notifyDestroyed();
}
else
{
display.setCurrent(tVerificarUsuario);
}
}
}
display.setCurrent(NombreClase);
Pero me da el siguiente error de compilación:
"Incompatible type for method. Can't convert VerificarUsuario to javax.microedition.lcdui.Displayable."
El código de la pantalla inicial es el siguiente, y la clase VerificarUsuario es la pantalla que quiero que aparezca(el código de esta segunda pantalla es casi igual que el de la primera).
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class CitaMov extends MIDlet implements CommandListener
{
// Declaramos el gestor de ventana para este MIDlet
Display display;
Form Formulario;
Image imagen;
String Titulo = "Evita las esperas";
VerificarUsuario tVerificarUsuario;
// Comandos de la pantalla que gestiona este MIDlet
static final Command comandoAtras = new Command("Salir", Command.EXIT, 1);
static final Command comandoEntrar = new Command("Entrar", Command.SCREEN, 1);
// Objetos que constituyen la pantalla del MIDlet
String present = "CITAMOV 1.0";
// Método Constructor
public CitaMov()
{
try
{
imagen = Image.createImage("/Tortilla.png");
}
catch(Exception e) {
System.out.println("Error: " + e.getMessage());
}
Formulario = new Form("EJEMPLO");
ImageItem dibujito = new ImageItem("",imagen,ImageItem.LAYOUT_RIGHT,"");
Formulario.append(Titulo);
Formulario.append(dibujito);
Formulario.addCommand(comandoAtras);
Formulario.addCommand(comandoEntrar);
Formulario.setCommandListener(this);
System.out.println("MIDlet Creado");
}
// Método startApp()
public void startApp() throws MIDletStateChangeException
{
display = Display.getDisplay(this);
display.setCurrent(Formulario);
System.out.println("MIDlet Iniciado");
}
// Método pauseApp()
public void pauseApp()
{
// Sin código ya que en este proceso en concreto no hará falta
System.out.println("MIDlet en pausa");
}
// Método destroyApp()
public void destroyApp(boolean unconditional)
{
System.out.println("MIDlet Destruido");
}
// Método Gestor de Eventos para la pantalla de Preguntas
public void commandAction(Command c, Displayable d)
{
if (c == comandoAtras)
{
display = null;
destroyApp(true);
notifyDestroyed();
}
else
{
display.setCurrent(tVerificarUsuario);
}
}
}
1 Respuesta
Respuesta de kapkon
1