CC10A06 COMPUTACION I 02 de Junio del 2003 // version 1: el escuchador esta en una clase dentro de mi clase principal // Las operaciones de la ventana se aplican sobre el objeto Frame (prog). Ej: prog.add(titulo); public class Temperaturas{ // Crear componentes private TextField celsius = new TextField(9), fahr = new TextField(9); private Label titulo = new Label("Conversion de Temperaturas"), labCelsius = new Label("Celsius:"), labFahrenh = new Label("Fahrenheit:"); private Button quit = new Button("Quit"); private Frame prog; // Inicializar ventana public Temperaturas(){ prog = new Frame(); prog.setLayout(new GridLayout(6,1)); prog.add(titulo); prog.add(labCelsius); prog.add(celsius); prog.add(labFahrenh); prog.add(fahr); prog.add(quit); celsius.addActionListener(new EnterListener()); fahr.addActionListener(new EnterListener()); quit.addActionListener(new EnterListener()); prog.pack(); prog.show(); } // Ejecutar programa static public void main(String[] args){ Temperaturas T = new Temperaturas(); } // Atender eventos (en otra clase!!) class EnterListener implements ActionListener { public void actionPerformed(ActionEvent x){ if(x.getSource() == celsius){ int c=Integer.parseInt(celsius.getText()); fahr.setText("" + (int)(9.0/5.0*c+32)); } else if(x.getSource() == fahr){ int f=Integer.parseInt(fahr.getText()); celsius.setText("" + (int)((f-32)*5.0/9.0)); } else //quit System.exit(0); } } } CC10A06 COMPUTACION I 02 de Junio del 2003 // version 2: el escuchador esta incorporado dentro clase principal // Las operaciones se aplican sobre el objeto Frame (prog). Ej: prog.add(titulo); public class Temperaturas implements ActionListener { // Crear componentes private TextField celsius = new TextField(9), fahr = new TextField(9); private Label titulo = new Label("Conversion de Temperaturas"), labCelsius = new Label("Celsius:"), labFahrenh = new Label("Fahrenheit:"); private Button quit = new Button("Quit"); private Frame prog; // Inicializar ventana public Temperaturas(){ prog = new Frame(); prog.setLayout(new GridLayout(6,1)); prog.add(titulo); prog.add(labCelsius); prog.add(celsius); prog.add(labFahrenh); prog.add(fahr); prog.add(quit); celsius.addActionListener(this); fahr.addActionListener(this); quit.addActionListener(this); prog.pack(); prog.show(); } // Atender eventos public void actionPerformed(ActionEvent x){ if(x.getSource() == celsius){ int c=Integer.parseInt(celsius.getText()); fahr.setText("" + (int)(9.0/5.0*c+32)); } else if(x.getSource() == fahr){ int f=Integer.parseInt(fahr.getText()); celsius.setText("" + (int)((f-32)*5.0/9.0)); } else //quit System.exit(0); } // Ejecutar el programa static public void main(String[] args){ Temperaturas T = new Temperaturas(); } } CC10A06 COMPUTACION I // version 3: mi clase ES UN Frame (extiende de Frame) // Las operaciones se aplican sobre la misma clase. Ej: add(titulo); public class Temperaturas extends Frame implements ActionListener { TextField celsius = new TextField(9), fahr = new TextField(9); Label titulo = new Label("Conversion de Temperaturas"), labCelsius = new Label("Celsius:"), labFahrenh = new Label("Fahrenheit:"); Button quit = new Button("Quit"); public Temperaturas(){ setLayout(new GridLayout(6,1)); add(titulo); add(labCelsius); add(celsius); add(labFahrenh); add(fahr); add(quit); celsius.addActionListener(this); fahr.addActionListener(this); quit.addActionListener(this); } public void actionPerformed(ActionEvent x){ if(x.getSource() == celsius){ int c=Integer.parseInt(celsius.getText()); fahr.setText("" + (int)(9.0/5.0*c+32)); } else if(x.getSource() == fahr){ int f=Integer.parseInt(fahr.getText()); celsius.setText("" + (int)((f-32)*5.0/9.0)); } else{ //quit System.exit(0); } } static public void main(String[] args){ Temperaturas T = new Temperaturas(); T.pack(); // esto tambien se podia hacer aca. T.show(); } } 02 de Junio del 2003 CC10A06 COMPUTACION I public class Recuento implements ActionListener{ private Label L1 = new Label("Candidato"), L2 = new Label("N de Votos"), L3 = new Label("Total"); private TextField votos1 = new TextField("0"), votos2 = new TextField("0"), votos3 = new TextField("0"); private Button cdto1 = new Button("Rosa Mara"), cdto2 = new Button("Jos Manuel"), descontar = new Button("descontar ultimo voto"), recomenzar = new Button("recomenzar"); private Frame prog; private int v1=0, v2=0, ultimoVoto=0; // inicializar variables GLOBALES!! // Inicializar ventana public Recuento(){ prog = new Frame(); prog.setLayout(new GridLayout(5,2)); prog.add(L1); prog.add(L2); prog.add(cdto1); prog.add(votos1); prog.add(cdto2); prog.add(votos2); prog.add(L3); prog.add(votos3); prog.add(descontar); prog.add(recomenzar); cdto1.addActionListener(this); cdto2.addActionListener(this); descontar.addActionListener(this); recomenzar.addActionListener(this); prog.pack(); prog.show(); } public void actionPerformed(ActionEvent x){ if(x.getSource() == cdto1){ ++v1; ultimoVoto = 1; }else if(x.getSource() == cdto2){ ++v2; ultimoVoto = 2; }else if(x.getSource() == recomenzar) v1=v2=0; else if(ultimoVoto == 1) --v1; // boton "descontar ultimo" else --v2; votos1.setText(""+v1); votos2.setText(""+v2); votos3.setText(""+(v1+v2)); } public static void main(String[] args){ Recuento R = new Recuento(); } } 02 de Junio del 2003