PROGRAMA 5
Se crean dos
formularios como los de la figura:
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;
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
*
'ShoppingList' en el mŽtodo main().
*/
public class ShoppingList extends
Form
{
List
shoppingList;
public ShoppingList()
{
super();
// Necesario para el soporte de Visual J++
Form Designer
initForm();
shoppingList
= new List(15, 5);
}
/**
* ShoppingList omite el uso por lo que puede
limpiar la lista de
* componentes.
*/
public void dispose()
{
super.dispose();
components.dispose();
}
private void updateList()
{
int index =
lbShopping.getSelectedIndex();
lbShopping.removeAll();
int i = 0,
size = shoppingList.getSize();
while(i <
size)
{
lbShopping.addItem(shoppingList.getItem(i).toString());
i
++;
}
if(index + 1
>= size)
index
= size - 1;
lbShopping.setSelectedIndex(index);
}
private void btnAdd_click(Object source, Event e)
{
NewItem
dlg = new NewItem(this);
if(dlg.showDialog()
== DialogResult.OK)
{
updateList();
}
}
private void
btnRemove_click(Object source, Event e)
{
shoppingList.removeItem(lbShopping.getSelectedIndex());
updateList();
}
private void
lbShopping_selectedIndexChanged(Object source, Event e)
{
btnRemove.setEnabled(lbShopping.getSelectedIndex()
!= -1);
}
private void ShoppingList_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();
Button
btnRemove = new Button();
Button
btnAdd = new Button();
ListBox
lbShopping = new ListBox();
private void initForm()
{
this.setText("ShoppingList");
this.setAutoScaleBaseSize(new Point(5, 13));
this.setClientSize(new Point(178, 146));
btnRemove.setEnabled(false);
btnRemove.setLocation(new Point(96, 120));
btnRemove.setSize(new Point(75, 23));
btnRemove.setTabIndex(2);
btnRemove.setText("&Quitar");
btnRemove.addOnClick(new
EventHandler(this.btnRemove_click));
btnAdd.setLocation(new Point(8, 120));
btnAdd.setSize(new Point(75, 23));
btnAdd.setTabIndex(1);
btnAdd.setText("&Agregar");
btnAdd.addOnClick(new EventHandler(this.btnAdd_click));
lbShopping.setLocation(new Point(8, 8));
lbShopping.setSize(new Point(160, 108));
lbShopping.setTabIndex(0);
lbShopping.setText("listBox1");
lbShopping.setUseTabStops(true);
lbShopping.addOnSelectedIndexChanged(new
EventHandler(this.lbShopping_selectedIndexChanged));
this.setNewControls(new Control[] {
btnRemove,
btnAdd,
lbShopping});
}
/**
* 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 ShoppingList());
}
}
En el formulario 2
que llamaremos “NewItem.JAVA”
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;
/**
* 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
* 'NewItem' en el mŽtodo main().
*/
public class NewItem extends Form
{
ShoppingList parent;
public
NewItem(ShoppingList sl)
{
super();
//
Necesario para el soporte de Visual J++ Form Designer
initForm();
parent
= sl;
setDialogResult(DialogResult.CANCEL);
}
/**
* NewItem omite el uso por lo que puede
limpiar la lista de
* componentes.
*/
public
void dispose()
{
super.dispose();
components.dispose();
}
private
void btnOK_click(Object source, Event e)
{
if(edtInput.getText().equals(""))
{
MessageBox.show("Introduzca un elemento",
"Error de entrada");
edtInput.focus();
return;
}
parent.shoppingList.addItem(edtInput.getText());
setDialogResult(DialogResult.OK);
dispose();
}
private
void btnCancel_click(Object source, Event e)
{
setDialogResult(DialogResult.CANCEL);
dispose();
}
private
void NewItem_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 edtInput = new Edit();
Button btnOK = new Button();
Button btnCancel = new Button();
private
void initForm()
{
this.setText("NewItem");
this.setAutoScaleBaseSize(new Point(5, 13));
this.setClientSize(new Point(181, 89));
label1.setLocation(new Point(8, 8));
label1.setSize(new Point(160, 16));
label1.setTabIndex(0);
label1.setTabStop(false);
label1.setText("Introduzca el elemento nuevo y haga
clic en Aceptar:");
edtInput.setLocation(new Point(8, 24));
edtInput.setSize(new Point(160, 20));
edtInput.setTabIndex(1);
edtInput.setText("");
btnOK.setLocation(new Point(8, 56));
btnOK.setSize(new Point(75, 23));
btnOK.setTabIndex(2);
btnOK.setText("OK");
btnOK.addOnClick(new EventHandler(this.btnOK_click));
btnCancel.setLocation(new Point(96, 56));
btnCancel.setSize(new Point(75, 23));
btnCancel.setTabIndex(3);
btnCancel.setText("Cancel");
btnCancel.addOnClick(new
EventHandler(this.btnCancel_click));
this.setNewControls(new Control[] {
btnCancel,
btnOK,
edtInput,
label1});
}
}