Algoritmia y Programación Oscar Bedoya oscar.bedoya@correounivalle.edu.co http://eisc.univalle.edu.co/~oscarbed/algoritmia/
Cuántos botones se necesitan?
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TTT extends JFrame implements ActionListener{ Container contenedor; FlowLayout miflow; JLabel LGanador; JButton B1,B2,B3,B4,B5,B6,B7,B8,B9, BR; TTT(){ LGanador = new JLabel("GANADOR: Desconocido "); B1 = new JButton(" "); B2 = new JButton(" "); B3 = new JButton(" "); B4 = new JButton(" "); B5 = new JButton(" "); B6 = new JButton(" "); B7 = new JButton(" "); B8 = new JButton(" "); B9 = new JButton(" "); BR = new JButton(" Reiniciar juego "); contenedor = getcontentpane(); miflow = new FlowLayout(); contenedor.setlayout(miflow); B1.addActionListener(this); B2.addActionListener(this); B3.addActionListener(this); B4.addActionListener(this); B5.addActionListener(this); B6.addActionListener(this); B7.addActionListener(this); B8.addActionListener(this); B9.addActionListener(this); BR.addActionListener(this); contenedor.add(b1); contenedor.add(b2); contenedor.add(b3); contenedor.add(b4); contenedor.add(b5); contenedor.add(b6); contenedor.add(b7); contenedor.add(b8); contenedor.add(b9); contenedor.add(lganador); contenedor.add(br);} /TTT2.java
Cuando necesite agrupar un conjunto de elementos dentro de un JFrame, debe utilizar un JPanel JPanel que agrupa los botones
JPanel Encuesta.java
Elementos de una GUI: - JLabel - JTextField - JButton - Container - FlowLayout
Elementos de una GUI: - JLabel - JTextField - JButton - Container - FlowLayout Cada elemento se debe * Declarar * Crear
Elementos de una GUI: - JLabel - JTextField - JButton - Container - FlowLayout - JPanel
Elementos de una GUI: - JLabel - JTextField - JButton - Container - FlowLayout - JPanel Cómo declarar y crear un JPanel?
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel();
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); panel1 El panel permite que se agrupen algunos elementos de la ventana
panel1 panel2
Panel (JPanel) panel1 Declarar un panel: JPanel panel1, panel2; Crear un panel: panel1 = new JPanel(); panel2 = new JPanel(); panel2
Para organizar los componentes se pueden usar dos clases: - FlowLayout - GridLayout
Para organizar los componentes se pueden usar dos clases: - FlowLayout (Container) - GridLayout (JPanel)
GridLayout: permite organizar los elementos en una rejilla Rejilla o GridLayout de 3 filas y 3 columnas
GridLayout: permite organizar los elementos en una rejilla Rejilla o GridLayout de 3 filas y 3 columnas
GridLayout: permite organizar los elementos en una rejilla Cuáles deben ser las dimensiones de esta rejilla?
GridLayout: permite organizar los elementos en una rejilla Rejilla de 4 filas y 2 columnas
GridLayout: permite organizar los elementos en una rejilla Cuáles deben ser las dimensiones de esta rejilla?
GridLayout: permite organizar los elementos en una rejilla Rejilla de 1 fila y 2 columnas
GridLayout: permite organizar los elementos en una rejilla Cuáles deben ser las dimensiones de esta rejilla?
GridLayout: permite organizar los elementos en una rejilla Rejilla de 2 filas y 3 columnas
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); El panel permite que se agrupen algunos elementos de la ventana
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); Establecer el GridLayout: panel1.setlayout(new GridLayout(3,3)); Filas y columnas de la rejilla
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); Establecer el GridLayout: panel1.setlayout(new GridLayout(3,3)); Filas y columnas de la rejilla
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); Establecer el GridLayout: panel1.setlayout(new GridLayout(?,?));
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); Establecer el GridLayout: panel1.setlayout(new GridLayout(4,2));
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); Establecer el GridLayout: panel1.setlayout(new GridLayout(?,?));
Panel (JPanel) Declarar un panel: JPanel panel1; Crear un panel: panel1 = new JPanel(); Establecer el GridLayout: panel1.setlayout(new GridLayout(2,3));
Problema: Complete la declaración y creación de elementos de la siguiente GUI Declarar los elementos: Crear los elementos:
Declarar los elementos: JLabel? JTextField? JButton? JPanel? Container contenedor; FlowLayout miflow;
Declarar los elementos: JLabel LGanador; JButton B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,BR; JPanel panel1; Container contenedor; FlowLayout miflow;
Crear los elementos: LGanador=new JLabel( GANADOR: Desconocido ); B1=new JButton( ); B2=new JButton( ); B3=new JButton( ); B4=new JButton( ); B5=new JButton( ); B6=new JButton( ); B7=new JButton( ); B8=new JButton( ); B9=new JButton( ); B10=new JButton( ); BR=new JButton( Reiniciar juego );
Botón B1 Botón B2 Botón B3 Botón B4 Botón B5 Botón B6 Cómo colocar los botones en el JPanel? Botón B7 Botón B8 Botón B9
Crear los elementos: panel1 = new JPanel(); panel1.setlayout(new GridLayout(3,3));
Crear los elementos: panel1 = new JPanel(); panel1.setlayout(new GridLayout(3,3)); panel1.add(b1); panel1.add(b2); panel1.add(b3); panel1.add(b4); panel1.add(b5); panel1.add(b6); panel1.add(b7); panel1.add(b8); panel1.add(b9);
Crear los elementos: panel1 = new JPanel(); panel1.setlayout(new GridLayout(3,3)); panel1.add(b1); panel1.add(b2); panel1.add(b3); panel1.add(b4); panel1.add(b5); panel1.add(b6); panel1.add(b7); panel1.add(b8); panel1.add(b9); Se utiliza add() para adicionar los elementos al panel
Botón B1 Botón B2 Botón B3 Botón B4 Botón B5 Botón B6 Botón B7 Botón B8 Botón B9 panel1 = new JPanel(); panel1.setlayout(new GridLayout(3,3)); panel1.add(b1); panel1.add(b2); panel1.add(b3); panel1.add(b4); panel1.add(b5); panel1.add(b6); panel1.add(b7); panel1.add(b8); panel1.add(b9);
Se debe adicionar el panel1 al contenedor
contenedor.add(panel1); Se debe adicionar el panel1 al contenedor
Crear los elementos: panel1 = new JPanel(); panel1.setlayout(new GridLayout(3,3)); panel1.add(b1); panel1.add(b2); panel1.add(b3); panel1.add(b4); panel1.add(b5); panel1.add(b6); panel1.add(b7); panel1.add(b8); panel1.add(b9); contenedor.add(panel1);
panel1 = new JPanel(); panel1.setlayout(new GridLayout(3,3)); panel1.add(b1); panel1.add(b2); panel1.add(b3); panel1.add(b4); panel1.add(b5); panel1.add(b6); panel1.add(b7); panel1.add(b8); panel1.add(b9); contenedor.add(panel1); contenedor.add(lganador); contenedor.add(br);
panel1 = new JPanel(); panel1.setlayout(new GridLayout(3,3)); panel1.add(b1); panel1.add(b2); panel1.add(b3); panel1.add(b4); panel1.add(b5); panel1.add(b6); panel1.add(b7); panel1.add(b8); panel1.add(b9); contenedor.add(panel1); contenedor.add(lganador); contenedor.add(br); *TTT.java
Problema: Complete la declaración y creación de los paneles panel1 con rejilla de 4 filas y 2 columnas panel2 con rejilla de 1 fila y 2 columnas *Encuesta.java
Problema: Complete la declaración y creación de los paneles LNombre LCodigo LSexo LCarrera BIngresar TFNombre TFCodigo TFSexo TFCarrera BPregunta1
LNombre LCodigo LSexo LCarrera BIngresar TFNombre TFCodigo TFSexo TFCarrera BPregunta1 panel1 = new JPanel(); panel1.setlayout(new GridLayout(?,?)); panel1.add(?);... panel2 = new JPanel(); panel2.setlayout(new GridLayout(?,?)); panel2.add(?);... Encuesta.java
Problema: presente el oyente de tal forma que se calculen 3 datos: el total a pagar (DVD a $23000 y Blu-ray a $65000), el IVA y la ganancia neta (total-iva) JButton (BCalcular) JTextField (TFDVD) JTextField (TFBluray) JTextField (TFValor) JTextField (TFIVA) JTextField (TFGanancia) VentaPeliculas.java
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ } } DVD $23000 Blu-ray $65000 JButton (BCalcular) JTextField (TFDVD) JTextField (TFBluray) JTextField (TFValor) JTextField (TFIVA) JTextField (TFGanancia)
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ int dvd, bluray, valor; double iva, ganancia; dvd=integer.parseint(tfdvd.gettext()); bluray=integer.parseint(tfbluray.gettext()); valor = dvd*23000 + bluray*65000; iva = valor * 0.16; ganacia = valor iva; TFValor.setText(String.valueOf(valor)); TFIVA.setText(String.valueOf(iva)); TFGanancia.setText(String.valueOf(ganancia)); } }
Operaciones matemáticas: double a,b,c,d,e; a = Math.sin(45); b = Math.cos(90); c = Math.tan(37); d = Math.pow(3,5); e = Math.sqrt(5);
Problema: presente el oyente de tal forma que se puedan calcular 3 valores: sin(x), cos(x) y raiz(x). El valor se debe mostrar en el campo de texto TFResultado JTextField (TFx) JTextField (TFResultado) ProgramaMath.java
public void actionperformed(actionevent e){ if (e.getsource()==bsin){ } if (e.getsource()==bcos){ } if (e.getsource()==braiz){ } } JTextField (TFx) JTextField (TFResultado)
public void actionperformed(actionevent e){ if (e.getsource()==bsin){ } } JTextField (TFx) JTextField (TFResultado)
public void actionperformed(actionevent e){ if (e.getsource()==bsin){ int x; double sen; x=integer.parseint(tfx.gettext()); sen = Math.sin(x); TFResultado.setText(String.valueOf(sen)); } } JTextField (TFx) JTextField (TFResultado)
Problema: presente el oyente de tal forma que se pueda calcular la distancia euclidiana entre dos puntos (x 1,y 1 ) y 2 2 (x 2,y 2 ), definida como d ( x x ) ( y y 2 1 2 1) JTextField (TFx1) JTextField (TFx2) JButton (BDistancia) JTextField (TFy1) JTextField (TFy2) JTextField (TFResultado) Distancia.java
public void actionperformed(actionevent e){ if (e.getsource()==bdistancia){ } } JTextField (TFx1) JTextField (TFx2) JButton (BDistancia) JTextField (TFy1) JTextField (TFy2) JTextField (TFResultado)
public void actionperformed(actionevent e){ if (e.getsource()==bdistancia){ int x1,y1,x2,y2; double d; x1 = Integer.parseInt(TFx1.getText()); y1 = Integer.parseInt(TFy1.getText()); x2 = Integer.parseInt(TFx2.getText()); y2 = Integer.parseInt(TFy2.getText()); d = Math.sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) ); TFResultado.setText(String.valueOf(d)); } }
Problema: presente el oyente de tal forma que se pueda hacer la traducción de 5 palabras de español a inglés JButton (BTraducir) JTextField (TFEspañol) JTextField (TFTraduccion) Traductor.java
public void actionperformed(actionevent e){ if (e.getsource()==btraducir){ } } JButton (BTraducir) JTextField (TFEspañol) JTextField (TFTraduccion)
public void actionperformed(actionevent e){ if (e.getsource()==btraducir){ String palabra, traduccion; palabra = TFEspañol.getText(); if (palabra.equals( Raton )){ traduccion = Mouse ; } if (palabra.equals( Profesor )){ traduccion = Teacher ; } TFTraduccion.setText(traduccion); } }
Problema: presente el oyente de tal forma que se calcule el valor de la llamada JTextField (TFOperador) JTextField (TFDuracion) JButton (BCalcular) JTextField (TFValor) Minutos.java
El valor de la llamada se calcula de acuerdo al operador teniendo en cuenta los valores que se muestran en la siguiente tabla:
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ } } JTextField (TFOperador) JTextField (TFDuracion) JButton (BCalcular) JTextField (TFValor)
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ String operador; int duracion, valor; operador=tfoperador.gettext(); duracion=integer.parseint(tfduracion.gettext()); if (operador.equals( Tigo )){ valor = duracion*150; }... TFValor.setText(String.valueOf(valor)); } }
Problema: presente el oyente de tal forma que se calculen 2 datos: el total a pagar y el valor correspondiente al pago del seguro Button (BCalcular) JTextField (TFEdad) JTextField (TFSexo) JTextField (TFMeses) JTextField (TFValor) JTextField (TFSeguro) Gimnasio.java
El valor de la mensualidad se calcula usando la siguiente tabla El pago del seguro es el 8% del total a pagar
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ } } Button (BCalcular) JTextField (TFEdad) JTextField (TFSexo) JTextField (TFMeses) JTextField (TFValor) JTextField (TFSeguro)
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ int edad, mensualidad, meses; String sexo; double seguro; edad=integer.parseint(tfedad.gettext()); sexo=tfsexo.gettext(); meses=integer.parseint(tfmeses.gettext()); if (edad<18 && sexo.equals( Masculino )){ mensualidad = meses*32000; seguro = mensualidad*0.08; }... TFValor.setText(String.valueOf(mensualidad)); TFSeguro.setText(String.valueOf(seguro)); } }
Problema: presente el oyente de tal forma que se calculen 2 datos: la categoría y el valor a pagar Button (BCalcular) JTextField (TFEdad) JTextField (TFMeses) JTextField (TFCategoria JTextField (TFValor) Tenis.java
La categoría y el valor del mes dependen de la edad y se calculan usando la siguiente tabla
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ } } Button (BCalcular) JTextField (TFEdad) JTextField (TFMeses) JTextField (TFCategoria JTextField (TFValor)
public void actionperformed(actionevent e){ if (e.getsource()==bcalcular){ int edad, meses, valor; String categoria; edad=integer.parseint(tfedad.gettext()); meses=integer.parseint(tfmeses.gettext()); if (edad<12){ categoria = Infantil ; valor = meses * 43000; }... TFCategoria.setText(categoria); TFValor.setText(String.valueOf(valor)); } }
Actividad Entrega del proyecto Sustentación Laboratorio 5 Parcial2 Opcional2 Viernes 15 de Junio Fecha Hasta el Vienes 22 de Junio (Martes y Jueves de 8:00 a 12:00 y de 2:00 a 4:30), Viernes de 8:00 a 11:30 Viernes 22 de Junio Lunes 25 de Junio Sábado 30 de Junio