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[k] = new Panel();
071 txtBolsillos[k] = new TextField(cap[k]);
072 txtBolsillos[k].setEnabled(false);
073 lblCapMaximas[k] = new Label("Bolsillo # " +(k+1)+" - Cap Maxima: " + cap[k]);
074 lblEstActuales[k] = new 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(800, 400);
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 > 0 && 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 65, 15, 25
151 };
152 int ai1[] = {//estados actuales de los bolsillos
153 1, 2, 3
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 }
|