001 /** Clase MaletaXGUI
002  *  @Author: Emerson Castañeda S
003  *  Interfaz grafica utilizando AWT
004  **/
005 
006 //Importamos las clases AWT
007 import java.awt.*;
008 
009 //Declaramos la clase MaletaXGUI que extiende de Frame para crear una aplicion
010 //local
011 public class MaletaXGUI extends Frame
012 {
013   // atributos de la clase  
014   //un objeto MaletaX
015   private MaletaX mltx;
016   // componentes para la GUI
017     private Panel pnl0;
018     private Label lbl1;
019     private Label lbl2;
020     private TextField txtValor;
021     private Choice choNroBolsillo;
022     private Button bntLlenar;
023     private Button bntSacar;
024     private Panel pnl1;
025     private Panel pnl2;
026     private Panel pnls[];
027     private TextField txtBolsillos[];
028     private Label lblCapMaximas[];
029     private Label lblEstActuales[];
030     private TextArea ta;
031 
032   // constructor de la clase
033   // que recibe el titulo de la aplicacion
034   // el numero de bosillos, las capacidades y los estados del objeto MaletaX
035   // y el color, tipo y las coordenadas del objeto Maleta
036     public MaletaXGUI(String titulo, int numbolsillos, int cap[]int est[],int color, String tipo, float x, float y, float z)
037     {
038       //lamado al constructor de Frame para colocar el titulo de la aplicacion
039       super("Titulo: " + titulo);
040       //asociando el manejador de eventos de la aplicacion para cerrar la ventana
041       addWindowListener(new CerVentana(this));
042       //instanciando el objeto MaletaX
043         mltx = new MaletaX(numbolsillos, cap, est,color,tipo,x,y,z);
044       //creando la GUI
045         lbl1 = new Label("Nro. Bolsillo");
046         lbl2 = new Label("Cantidad de Elementos");
047         txtValor = new TextField(2);
048         bntLlenar = new Button("Llenar");
049         bntSacar = new Button("Sacar");
050         setLayout(new FlowLayout());
051         pnl0 = new Panel();
052         pnl0.add(lbl1);
053         choNroBolsillo = new Choice();
054         for(int j = 1; j <= numbolsillos; j++)
055             choNroBolsillo.addItem("" + j);
056         pnl0.add(choNroBolsillo);
057         pnl0.add(lbl2);
058         pnl0.add(txtValor);
059         txtValor.setText("1");
060         pnl0.add(bntLlenar);
061         pnl0.add(bntSacar);
062         pnl1 = new Panel();
063         pnl1.setLayout(new GridLayout(numbolsillos, 1));
064         txtBolsillos = new TextField[numbolsillos];
065         lblCapMaximas = new Label[numbolsillos];
066         lblEstActuales = new Label[numbolsillos];
067         pnls = new Panel[numbolsillos];
068         for(int k = 0; k < numbolsillos; k++)
069         {
070             pnls[knew Panel();
071             txtBolsillos[knew TextField(cap[k]);
072             txtBolsillos[k].setEnabled(false);
073             lblCapMaximas[knew Label("Bolsillo #  " +(k+1)+" - Cap Maxima: " + cap[k]);
074             lblEstActuales[knew Label("Est Actual: " + est[k]);
075             pnls[k].add(lblCapMaximas[k]);
076             pnls[k].add(txtBolsillos[k]);
077             pnls[k].add(lblEstActuales[k]);
078             pnl1.add(pnls[k]);
079         }
080         add(pnl1);
081         add(pnl0);
082         pnl2=new Panel();
083         ta = new TextArea(8,50);
084         pnl2.add(new Label("Salida del metodo toString() de la clase MaletaX"));
085         pnl2.add(ta);
086         add(pnl2);
087         actualizar();
088         setSize(800400);
089         show();
090     }
091 
092   // Redefinicion del metodo action para gestionar los eventos
093   // de los botones llenar y sacar
094     public boolean action(Event event, Object obj)
095     {
096         if(event.target instanceof Button)
097         {
098             int i = (new Integer(choNroBolsillo.getItem(choNroBolsillo.getSelectedIndex()))).intValue();
099             int j = (new Integer(txtValor.getText())).intValue();
100             System.out.println("a:" + i + " b:" + j);
101             if(i > && i <= mltx.getNroBolsillos())
102             {
103                 if(event.arg.equals("Llenar"))
104                     if(mltx.llenarX(i, j))
105                         actualizar();
106                     else
107                         System.out.println("Cantidad a llenar invalida "+i+" "+j);
108                 if(event.arg.equals("Sacar"))
109                     if(mltx.sacarX(i, j))
110                         actualizar();
111                     else
112                         System.out.println("Cantidad a sacar invalida "+i+" "+j);
113             else
114             {
115                 System.out.println("Numero de bolsillo invalido");
116             }
117             return true;
118         else
119         {
120             System.out.println("" + event + " " + obj);
121             return false;
122         }
123     }
124   
125   // Redibuja la interfaz grafica segun el estado del objeto
126   // MaletaX mltx
127     public void actualizar()
128     {
129         for(int i = 0; i < mltx.getNroBolsillos(); i++)
130         {
131             String s = "";
132             for(int j = 0; j < mltx.getEstActuales(i + 1); j++)
133                 s = s + "X";
134 
135             txtBolsillos[i].setText(s);
136             lblEstActuales[i].setText("Est Actual: " + mltx.getEstActuales(i + 1));
137         }
138         
139         ta.setText(""+mltx);
140         
141 
142     }
143     
144     //metodo mein para ejecurtar la clase
145     public static void main(String args[])
146     {
147         //arreglos de enteros para pasar como parametros al constructor de
148         //MaletaX
149         int ai[] {//capacidades maximas de los bolsillos
150             651525
151         };
152         int ai1[] {//estados actuales de los bolsillos
153             123
154         };
155         //creando un objeto MaletaXGUI
156         MaletaXGUI maletaxgui = new MaletaXGUI("Maleta GUI"3, ai, ai1,1,"Deportiva",3.1f,1.2f,2.34f);
157     }
158     
159 }
Java2html
1