Mostrando entradas con la etiqueta J2ME. Mostrar todas las entradas
Mostrando entradas con la etiqueta J2ME. Mostrar todas las entradas

martes, noviembre 28, 2006

Uso de Hashtable en J2ME - Hashtable management using J2ME

(versión sin depurar)

Ejemplo del manejo (inserción y eliminación de elementos usando un string como key) de un Hashtable en J2ME sobre la lógica de un chat donde los usuarios y las salas de chat se almacenan por separado, enlazándose mediante referencias.


/*
* LogicaChat.java
*
* Created on 28 de noviembre de 2006, 19:00
*
* Pedro Luis Mateo || pedrolmn@gmail.com
*/

package hello;
import java.util.*;

////////////////////////////////////////////////////////////////////////////////
public class LogicaChat {

/** Creates a new instance of LogicaChat */
public LogicaChat() {
}

//variables en las que se basa la logica del chat
/*private*/ Hashtable chatrooms = new Hashtable();
/*private*/ Hashtable users = new Hashtable();

//metodos
public void newChatRoom(ChatRoom cr){
chatrooms.put(cr.name,cr);
}

public void delChatRoom(ChatRoom cr){
//primero elimino todos sus usuarios
cr.users.resetIterator();
while (cr.users.hasNext()){
//disminuyo la rpesencia de un usuario en salas
((User)cr.users.next()).exitRoom();
//si ya no se encuentra en ninguna sala, elimino
if (!((User)cr.users.next()).isInRooms()){
users.remove(((User)cr.users.next()).nick);
}
}
//por ultimo elimino el chatroom
chatrooms.remove(cr.name);
}

public void newUser(User u){
users.put(u.nick,u);
}

public void delUser(User u){
//eliminamos si no esta presente en ningun chatroom
if (!u.isInRooms()) users.remove(u.nick);
}

public void addUserChat(String nu, String ncr){
try{
User u = (User)users.get(nu);
ChatRoom cr = (ChatRoom)chatrooms.get(ncr);
cr.addUser(u);
}catch(Exception e){}
}

public void delUserChat(String nu, String ncr){
try{
User u = (User)users.get(nu);
ChatRoom cr = (ChatRoom)chatrooms.get(ncr);
//comprobaremos que ese usuario pertenece a ese chatroom
if (cr.users.exists(u)){
//disminuimos la presencia
u.exitRoom();
//eliminamos el enlace desde el chatroom
cr.removeUser(u);
//si el usuario ya no se encuentra en ninguna sala lo eliminamos
if (!u.isInRooms()){
users.remove(u);
}
}
}catch(Exception e){}
}

public User existsUser(String nick){
return (User)users.get(nick);//puede devolver null
}
}


miércoles, noviembre 22, 2006

Editor gratuito para Java con soporte para aplicaciones móviles - Free IDE for Java with mobile support

Esta es una versión de NetBeans (la última) con un add-on que adaptará nuestro IDE para permitirnos el desarrollo de aplicaciones destinadas a dispositivos móviles.

Download links: NetBeans - Mobility pack

LinkedList de Java para J2ME - Java LinkedList for J2ME

Clase java implementada en J2ME que simula una LinkedList (lista enlazada) de Java2 e incluye un iterador externo.
Muy útil si desarrollas aplicaciones para entornos móviles en Java, ya que las listas enlazadas no vienen implementadas por defecto en el J2ME y son muy útiles para la elaboración de implementaciones móviles.

Se trata de una versión básica fácilmente mejorable y adaptable.





/*
* MList.java
*
* Created on 22 de noviembre de 2006, 12:58
*
* Pedro Luis Mateo || pedrolmn@gmail.com
*/

package hello;

import java.util.Vector;
/**
*
* @author Pedro Luis Mateo
*/
public class MList {

/** Creates a new instance of MList */
public MList() {
}

////////////////////////////////////////////////////////////////////////////
// METODOS PARA EL MANEJO DE LA LISTA - LIST HANDLE METHODS

private Vector list = new Vector();

public void addLast(Object o){
list.insertElementAt(o,list.size());
}

public Object getLast(){
return list.lastElement();
}

public void addFirst(Object o){
list.indexOf(o,0);
}

public Object getFirst(){
return list.firstElement();
}

public boolean remove(Object o){
return list.removeElement(o);
}

public int size(){
return list.size();
}

////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
//// ITERADOR - ITERATOR METHODS ////
/////////////////////////////////////

int current=0;
Object currentObj=null;

public boolean hasNext(){
if (current < list.size()){
currentObj = list.elementAt(current);
current++;
return true;
}
else{
return false;
}
}

public Object next(){
return currentObj;
}

public void resetIterator(){
current=0;
currentObj=null;
}
}