AGENDA DE TELEFONOS

 

 

 

Se crean dos ficheros .java FileCardEditor.JAVA y FileCard.JAVA

 

El fichero FileCard.JAVA con el que guardaremos los datos

 

class FileCard

{

                String name;

                String phoneNumber;

                public FileCard(String n, String p)

                {

                               name = n;

                               phoneNumber = p;

                }

}

 

Un fichero es del tipo formulario: FileCardEditor.JAVA  y su cçodigo es el siguiente:

 

import com.ms.wfc.app.*;

import com.ms.wfc.core.*;

import com.ms.wfc.ui.*;

import com.ms.wfc.html.*;

import com.ms.wfc.io.*;

import com.ms.wfc.util.*;

/**

* Esta clase puede tomar un nœmero variable de par‡metros en la l’nea de

 * de comandos. La ejecuci—n del programa comienza con el mŽtodo main(). El

 * constructor de clase no se invoca a menos que se cree un objeto del tipo

 * 'FileCardEditor' en el mŽtodo main().

 */

public class FileCardEditor extends Form

{

                // Declarar una List

                List cardFile;

                int currentIndex;

                // Declarar la referencia de archivo

                File phoneListFile;

                final static String FILENAME = "MYLIST.PHONE";

               

                public FileCardEditor()

                {

                               super();

                               // Necesario para el soporte de Visual J++ Form Designer

                               initForm();                         

                               // Abrir el archivo y crear la matriz

                               phoneListFile = File.open(FILENAME);

                              

                                               // TODO 3: Crear la List

                               int length = phoneListFile.readInt();

                               cardFile = new List(length, 10);

                              

                               // Llenar List con valores del archivo

                               int index = 0;

                               String name, phoneNumber;

                               while(index < length)

                               {

                                               // Leer los valores del archivo

                                               name = phoneListFile.readString();

                                               phoneNumber =  phoneListFile.readString();

                                               // Crear un objeto FileCard y colocarlo en List

                                               cardFile.addItem(new FileCard(name, phoneNumber));

                                               index = index + 1;

                               }

                               // Cerrar el archivo           

                               phoneListFile.close();

                              

                               currentIndex = 0;

                               setUI();

                }

                /**

                 * FileCardEditor omite el uso por lo que puede limpiar la lista de

                 * componentes.

                 */

                public void dispose()

                {

                               super.dispose();

                               components.dispose();

                }

                private void saveData()

                {

                               // Actualizar para utilizar List e ’ndice

                               FileCard aCard;

                               aCard = (FileCard)cardFile.getItem(currentIndex);

                               aCard.name = edtName.getText();

                               aCard.phoneNumber = edtPhoneNumber.getText();

                }

               

                private void setUI()

                {

                               // Actualizar para utilizar List e ’ndice

                               FileCard aCard;

                               aCard = (FileCard)cardFile.getItem(currentIndex);

                               edtName.setText(aCard.name);

                               edtPhoneNumber.setText(aCard.phoneNumber);

                              

                               // Cambiar para utilizar mŽtodos List

                               btnPrevious.setEnabled(currentIndex > 0);

                               btnNext.setEnabled(currentIndex + 1 < cardFile.getSize());

                }

                private void btnPrevious_click(Object source, Event e)

                {

                               // Guardar los valores del formulario en la matriz

                               saveData();

                              

                               // Actualizar para utilizar la matriz

                               if(currentIndex != 0)

                               {

                                               currentIndex = currentIndex - 1;

                               }

                               // Actualizar los valores del formulario

                               setUI();

                }

                private void btnNext_click(Object source, Event e)

                {

                               // Guardar los valores del formulario en la matriz

                               saveData();

                               // Actualizar para utilizar un mŽtodo List

                               if(currentIndex != cardFile.getSize() - 1)

                               {

                                               currentIndex = currentIndex + 1;

                               }

                               // Actualizar los valores del formulario

                               setUI();

                }

                private void FileCardEditor_closing(Object source, CancelEvent e)

                {

                               // Actualizar la matriz con datos del formulario

                               saveData();

                              

                               // Crear el archivo para salida

                               phoneListFile = File.create(FILENAME);

                              

                               // Escribir la longitud de la lista

                               int length = cardFile.getSize();

                               phoneListFile.writeInt(length);

                              

                               int index = 0;

                               FileCard aCard;

                               while(index < length)

                               {

                                               // Escribir los valores individuales de FileCard

                                               aCard = (FileCard)cardFile.getItem(index);

                                               phoneListFile.writeString(aCard.name);

                                               phoneListFile.writeString(aCard.phoneNumber);

                                               index = index + 1;

                               }

                              

                               // Cerrar el archivo

                               phoneListFile.close();

                }

                private void btnAdd_click(Object source, Event e)

                {

                               // Guardar datos del formulario

                               saveData();

                              

                               // Agregar una ficha nueva

                               addNewCard();

                }

               

                // MŽtodo para agregar una nueva FileCard

                private void addNewCard()

                {

                               // Crear una FileCard en blanco

                               FileCard aCard = new FileCard("", "");

                              

                               // Agregar la nueva FileCard a List

                               cardFile.addItem(aCard);

                              

                               // Ajustar currentIndex para acceder a la nueva FileCard

                               currentIndex = cardFile.findIndex(aCard);

                              

                               // Invocar setUI para actualizar la interfaz de usuario

                               setUI();

                }

                private void btnDelete_click(Object source, Event e)

                {

                               // Eliminar la ficha actual de List

                               cardFile.removeItem(currentIndex);

                              

                               int length = cardFile.getSize();

                              

                               // Si est‡ vac’a la lista, agregar una FileCard en blanco

                               if(length == 0)

                               {

                                               addNewCard();

                               }

                               // Si pasa del final de List, ajustar currentIndex

                               else if(currentIndex == length)

                               {

                                               currentIndex = currentIndex - 1;

                               }

                              

                               // Invocar setUI para actualizar la interfaz de usuario

                               setUI();

                }

                private void FileCardEditor_click(Object source, Event e)

                {

                              

                }

 

                /**

                 * NOTA: El siguiente c—digo es necesario para el dise–ador de formularios

                 * de Visual J++. Puede modificarse editor de formularios. No lo

                 * modifique utilizando el editor de c—digo.

                 */

                Container components = new Container();

                Label label1 = new Label();

                Edit edtName = new Edit();

                Label label2 = new Label();

                Edit edtPhoneNumber = new Edit();

                Button btnPrevious = new Button();

                Button btnNext = new Button();

                Button btnAdd = new Button();

                Button btnDelete = new Button();

                Button btnSort = new Button();

 

                private void initForm()

                {

                               this.setText("FileCardEditor");

                               this.setAutoScaleBaseSize(new Point(5, 13));

                               this.setClientSize(new Point(366, 104));

                               this.addOnClick(new EventHandler(this.FileCardEditor_click));

                               this.addOnClosing(new CancelEventHandler(this.FileCardEditor_closing));

 

                               label1.setLocation(new Point(8, 8));

                               label1.setSize(new Point(48, 23));

                               label1.setTabIndex(0);

                               label1.setTabStop(false);

                               label1.setText("&Nombre:");

 

                               edtName.setAnchor(ControlAnchor.TOPLEFTRIGHT);

                               edtName.setLocation(new Point(64, 8));

                               edtName.setSize(new Point(295, 20));

                               edtName.setTabIndex(1);

                               edtName.setText("");

 

                               label2.setLocation(new Point(8, 40));

                               label2.setSize(new Point(48, 23));

                               label2.setTabIndex(2);

                               label2.setTabStop(false);

                               label2.setText("&TelŽfono:");

 

                               edtPhoneNumber.setAnchor(ControlAnchor.TOPLEFTRIGHT);

                               edtPhoneNumber.setLocation(new Point(64, 40));

                               edtPhoneNumber.setSize(new Point(295, 20));

                               edtPhoneNumber.setTabIndex(3);

                               edtPhoneNumber.setText("");

 

                               btnPrevious.setLocation(new Point(8, 71));

                               btnPrevious.setSize(new Point(65, 23));

                               btnPrevious.setTabIndex(4);

                               btnPrevious.setText("Ante&rior");

                               btnPrevious.addOnClick(new EventHandler(this.btnPrevious_click));

 

                               btnNext.setLocation(new Point(80, 71));

                               btnNext.setSize(new Point(65, 23));

                               btnNext.setTabIndex(5);

                               btnNext.setText("Siguie&nte");

                               btnNext.addOnClick(new EventHandler(this.btnNext_click));

 

                               btnAdd.setLocation(new Point(152, 72));

                               btnAdd.setSize(new Point(65, 23));

                               btnAdd.setTabIndex(6);

                               btnAdd.setText("&Agregar");

                               btnAdd.addOnClick(new EventHandler(this.btnAdd_click));

 

                               btnDelete.setLocation(new Point(224, 72));

                               btnDelete.setSize(new Point(65, 23));

                               btnDelete.setTabIndex(8);

                               btnDelete.setText("&Eliminar");

                               btnDelete.addOnClick(new EventHandler(this.btnDelete_click));

 

                               btnSort.setLocation(new Point(296, 72));

                               btnSort.setSize(new Point(65, 23));

                               btnSort.setTabIndex(7);

                               btnSort.setText("&Corto");

 

                               this.setNewControls(new Control[] {

                                                                                                              btnSort,

                                                                                                              btnDelete,

                                                                                                              btnAdd,

                                                                                                              btnNext,

                                                                                                              btnPrevious,

                                                                                                              edtPhoneNumber,

                                                                                                              label2,

                                                                                                              edtName,

                                                                                                              label1});

                }

                /**

                 * Punto de entrada principal para la aplicaci—n.

                 *

                 * @param args Matriz de par‡metros pasados a la aplicaci—n

                 * mediante la l’nea de comandos.

                 */

                public static void main(String args[])

                {

                               Application.run(new FileCardEditor());

                }

}