Archive

Archive for the ‘J2ME’ Category

Abrir FileConnection en modo WRITE

February 17th, 2010

Me parecio interesante y extraño a la vez, que en una aplicación para Blackberry, al intentar abrir un archivo, para escribir en el, utilizando el FileConnection me diera un IllegalModeException cuando hacia lo siguiente:

FileConnection conn = (FileConnection) Connector.open(path, Connector.WRITE);

Revisando en varios foros me encontre con esta solución.

http://discussion.forum.nokia.com/forum/showthread.php?t=65218

Básicamente lo que dice es que hay que abrir la conexión sin ningun modo como parametro, es decir:

FileConnection conn = (FileConnection) Connector.open(path);

Si esto es un bug o algo, viene de la parte de J2ME ya que la solución (del url) aplica para J2mE y tambien aplica para el framework  de Blackberry.

fr4gus Blackberry, Desarrollo de Software, J2ME, Java , , ,

[RIM] Centrando campos en la pantalla

July 30th, 2009

La necesidad de acomodar los objetos en la pantalla, a veces no es tan sencillo, si no se entiendie bien como se pintan los objetos creados con el SDK de RIM para desarrollar aplicaciones para Blackberry usando Java (J2ME).

El truco aqui se basa en el anidamiento de managers (verticales y horizontales) segun ocupemos centrar vertical u horizontalmente un objeto ya sea  en relación con la pantalla o con otro objeto de la interfaz. Además, también requerimos saber que “bits” de estilo ocupamos definir durante la creación de los objetos, para poder obtener el resultado deseado.

package helloworld;

import net.rim.device.api.ui.DrawStyle;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.container.FullScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

public class TestScreen extends FullScreen {
	VerticalFieldManager myManager = new VerticalFieldManager(USE_ALL_WIDTH);

	public TestScreen() {
		ButtonField button1 = new ButtonField("Button 1",FIELD_HCENTER);
		ButtonField button2 = new ButtonField("Button 2",FIELD_VCENTER);
		ButtonField button3 = new ButtonField("Button 3",DrawStyle.HCENTER);
		bottomManager.add(button1);
		bottomManager.add(button2);
		bottomManager.add(button3);

		add(bottomManager);
	}

}

centering_fields

En el ejemplo anterior defini un manager vertical, pues deseo que mi botón se centre horizontalmente sobre la pantalla. Lo primero que se debe hacer es decirle al manager que “tome” todo el ancho posible de la pantalla. Luego durante la creación de la instancia del boton, debo definirle un bit de estilo, en este caso el FIELD_HCENTER, que le solicita al boton que se centre horizontalmente sobre su manager.

Al botón dos, por ejemplo, se le definió el bit de estilo FIELD_VCENTER, que le pide que se centre verticalmente sobre el espacio asignado por el manager, que como verán en la imagen del simulador, es irrelevante o más bien imperceptible pues el boton no tiene espacio arriba o abajo para hacerlo.

También podriamos estar tentados de usar el DrawStyle.HCENTER pero esto solo aplica para texto.

fr4gus Desarrollo de Software, J2ME, Java , , , , , , ,