Programación interactiva Oscar Bedoya [email protected] JPanel con GridLayout(4,2) JPanel con GridLayout(1,2) JTextArea de 10 x 25 JFrame o contenedor con FlowLayout Al presionar el botón Pregunta, se debe mostrar el nombre y el código de los estudiantes de ELECTRONICA de sexo femenino Botón “Ingresar datos” public class Estudiante{ String codigo, nombre, sexo, carrera; Estudiante nombre código sexo carrera public Estudiante(String c, String n, String s, String c){ codigo=c; nombre=n; sexo=s; carrera=c; } Clase base public String obtenerNombre(){ return nombre; } ... } unEstudiante Oscar 9709555 M SISTEMAS losEstudiantes unEstudiante Codigo=“9709555” Nombre=“OSCAR” Sexo=“M” Carrera=“SISTEMAS” losEstudiantes unEstudiante Codigo=“9709555” Nombre=“OSCAR” Sexo=“M” Carrera=“SISTEMAS” unEstudiante Codigo=“0309560” Nombre=“SARAH” Sexo=“F” Carrera=“ELECTRONICA” Botón “Pregunta” Al presionar el botón Pregunta, se debe mostrar el nombre y el código de los estudiantes de ELECTRONICA de sexo femenino losEstudiantes unEstudiante Codigo=“9709555” Nombre=“OSCAR” Sexo=“M” Carrera=“SISTEMAS” unEstudiante unEstudiante Codigo=“0309560” Nombre=“SARAH” Sexo=“F” Carrera=“ELECTRONICA” Codigo=“0209430” Nombre=“ANDREA” Sexo=“F” Carrera=“ELECTRONICA” losEstudiantes unEstudiante Codigo=“9709555” Nombre=“OSCAR” Sexo=“M” Carrera=“SISTEMAS” ¿Carrera es ELECTRONICA y Sexo es F? unEstudiante unEstudiante Codigo=“0309560” Nombre=“SARAH” Sexo=“F” Carrera=“ELECTRONICA” Codigo=“0209430” Nombre=“ANDREA” Sexo=“F” Carrera=“ELECTRONICA” losEstudiantes unEstudiante Codigo=“9709555” Nombre=“OSCAR” Sexo=“M” Carrera=“SISTEMAS” unEstudiante unEstudiante Codigo=“0309560” Nombre=“SARAH” Sexo=“F” Carrera=“ELECTRONICA” Codigo=“0209430” Nombre=“ANDREA” Sexo=“F” Carrera=“ELECTRONICA” ¿Carrera es ELECTRONICA y Sexo es F? losEstudiantes unEstudiante Codigo=“9709555” Nombre=“OSCAR” Sexo=“M” Carrera=“SISTEMAS” unEstudiante unEstudiante Codigo=“0309560” Nombre=“SARAH” Sexo=“F” Carrera=“ELECTRONICA” Codigo=“0209430” Nombre=“ANDREA” Sexo=“F” Carrera=“ELECTRONICA” ¿Carrera es ELECTRONICA y Sexo es F? Botón Ingresar Datos: • Crear un objeto estudiante con los atributos codigo, nombre, sexo y carrera • Asignar los datos digitados al objeto creado • Agregar el objeto a un vector llamado losEstudiantes • Mostrar un mensaje donde se indique que se introdujo un estudiante al vector Botón Pregunta1: Muestre el nombre y el código de las mujeres que realizaron la encuesta que son estudiantes de Ingeniería Electrónica • Recorrer el vector y verificar la condición • Si se cumple, mostrar el nombre y el código Clase Vector Método Descripción addElement Adiciona un elemento al vector size() Devuelve la cantidad de elementos en el vector elementAt(i) Devuelve el elemento en la posición i (iniciando en 0) removeElementAt(i) Elimina el elemento en la posición i Aerolinea-AerolineaMenu JMenu JMenuItem JMenuBar JMenu JMenuItem JMenuItem JMenuBar JMenu JMenuItem JMenuBar Anteriormente los botones tenían asociados el oyente. Ahora, ¿con quién se debe asociar el oyente? • Para definir y crear la barra de menues JMenuBar barra; barra=new JMenuBar(); • Para definir y crear un menú JMenu menuInicio; menuInicio = new JMenu(" Inicio "); • Para definir los ítems del menu JMenuItem item1, item2, item3, item4; item1 = new JMenuItem(" Nuevo pasajero "); item2 = new JMenuItem(“ Listado 1 "); item3 = new JMenuItem(" Listado 2 "); item4 = new JMenuItem(" Salir "); Se debe especificar a qué menú pertenece cada item menuInicio item1 barra menuListados item2 item3 barra menuTerminar item4 barra • Para adicionar los items a un menú específico se utiliza el método add() menuInicio.add(item1); menuListados.add(item2); menuListados.add(item3); menuTerminar.add(item4); • Para adicionar funcionalidad a los items se utiliza el método addActionListener item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this); • Después de adicionar los items a cada menu, se debe adicionar cada menú a la barra de menues, esto se hace de la siguiente manera: barra.add(menuInicio); barra.add(menuListados); barra.add(menuTerminar); • Por último se debe adicionar la barra de menues a la ventana setJMenuBar(barra); public void actionPerformed(ActionEvent e){ if (e.getSource()==item1){ . . . } if (e.getSource()==item2){ . . . } if (e.getSource()==item3){ . . . } if (e.getSource()==item4){ . . . } } Swing JTabbedPane Ordena los componentes de la GUI en capas, en donde solo una capa está visible en un momento dado Swing JTabbedPane Ordena los componentes de la GUI en capas, en donde solo una capa está visible en un momento dado Un TabbedPane une un conjunto de componentes JPanel Swing JTabbedPane •Declarar private JTabbedPane panelConFichas; private JPanel panel1, panel2, panel3; •Crear panelConFichas = new JTabbedPane(); etiqueta1 = new JLabel( "panel uno", SwingConstants.CENTER ); panel1 = new JPanel(); panel1.add( etiqueta1 ); panelConFichas.addTab( "Ficha uno", null, panel1, "Primer panel" ); Título que aparece en el tab Swing JTabbedPane •Declarar private JTabbedPane panelConFichas; private JPanel panel1, panel2, panel3; •Crear panelConFichas = new JTabbedPane(); etiqueta1 = new JLabel( "panel uno", SwingConstants.CENTER ); panel1 = new JPanel(); panel1.add( etiqueta1 ); panelConFichas.addTab( "Ficha uno", null, panel1, "Primer panel" ); Icono Panel ToolTipText Swing JTabbedPane •Declarar private JTabbedPane panelConFichas; private JPanel panel1, panel2, panel3; •Crear Icon image1 = new ImageIcon( "image12.gif" ); etiqueta3 = new JLabel( "panel uno", SwingConstants.CENTER ); panel3 = new JPanel(); panel3.add( etiqueta3 ); panelConFichas.addTab( "Ficha tres", image1, panel3, “Tercer panel" ); Se coloca un icono Swing DemoJTabbedPane