Sei sulla pagina 1di 41

Programacin Orientada a Objeto Programacin Orientada a Objeto

Septiembre 2014
Programacin orientada a Objeto - POO
2
Temario
Introduccin
AWT & Swing
Programando GUI
Programacin orientada a Objeto - POO
3
Ventana de Mens
JMenuBar
JMenu
JMenu
JMenuItem
JMenuItem
Algunos elementos de un men
Programacin orientada a Objeto - POO
4
Jerarqua de Herencia
Programacin orientada a Objeto - POO
5
Ventana de Mens
import javax.swing.*;
public class VentanaTest {
public static void main(String[] args) {
JFrame f = new JFrame("Registro de Clientes");
JMenuBar mb = new JMenuBar();
JMenu menu = new JMenu("Directorio");
JMenuItem item1, item2, item3;
item1 = new JMenuItem("Clientes Nuevos");
item2 = new JMenuItem("Referencias");
item3 = new JMenuItem("Salir");
menu.add(item1);
menu.add(item2);
menu.add(item3);
mb.add( menu );
f.setJMenuBar( mb );
f.setSize(400, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
Programacin orientada a Objeto - POO
6
Ventana de Mens
Construye una nueva ventana de Men para un sistema de
i!ioteca"
Programacin orientada a Objeto - POO
7
#$tendiendo !a c!ase %&rame
public class MiVentana extends JFrame {
public MiVentana() {
super(Servicios al Cliente");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public class VentanaTest {
public static void main(String[] args) {
MiVentana v = new MiVentana();
v.setVisible(true);
}
}
#s usua! e$tender !a c!ase %&rame' y rea!i(ar !as operaciones de inicia!i(acin
en su constructor)
Programacin orientada a Objeto - POO
8
Componentes
%*utton
%+ae!
%Te$t&ie!d
%C,ec-*o$
%.adio*utton
Una ve( /ue se crean estos o0etos o componentes con new' se a1aden a!
contentPane de !a ventana correspondiente mediante su m2todo add)
Programacin orientada a Objeto - POO
9
#0emp!o de componentes
setSize(600, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
JLabel etiqueta = new JLabel("Nombre del Cliente: ");
JTextField texto = new JTextField(20);
JButton boton = new JButton("Buscar");
cp.add(etiqueta);
cp.add(texto);
cp.add(boton);
Agregar tres componentes a !a c!ase Mi3entana 4eti/ueta'
te$to y otn5)
Programacin orientada a Objeto - POO
10
#0emp!o de componentes
import javax.swing.*;
import java.awt.*;
class MiVentana extends JFrame {
public MiVentana() {
super("Servicios al Cliente");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 300);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
JLabel etiqueta = new JLabel("Nombre del Cliente: ");
JTextField texto = new JTextField(20);
JButton boton = new JButton("Buscar");
cp.add(etiqueta);
cp.add(texto);
cp.add(boton);
} }
public class VentanaTest {
public static void main(String[] args) {
MiVentana v = new MiVentana();
v.setVisible(true);
}
}
Programacin orientada a Objeto - POO
11
Salida de la prctica
Construye una nueva ventana con diversos
componentes para un sistema de contro! esco!ar"
Programacin orientada a Objeto - POO
12
Prctica 1 - JFrame
Con6eccionar e! programa 78o!a Mundo7 uti!i(ando una
inter6a( gr96ica de usuario)
import javax.swing.*;
public class Formulario extends JFrame{
public Formulario() {
setLayout(null);
}
public static void main(String[] arg) {
Formulario formulario1=new Formulario();
formulario1.setBounds(10,20,400,300);
formulario1.setVisible(true);
}
}
x
y
a
b
x y a b
&ormu!ario)set*ounds4:;' <;' =;;' >;;
Programacin orientada a Objeto - POO
13
Prctica 1.1 JFrame
Crear una ventana de :;<= p?$e!es por @;; p?$e!es) +uego no permitir /ue
e! operador modi6i/ue e! tama1o de !a ventana) Usar m2todo
set.esi(a!e /ue tami2n re/uiere como par9metro un va!or true o 6a!se)
Programacin orientada a Objeto - POO
14
Prctica 1.1 JFrame
Crear una ventana de :;<= p?$e!es por @;; p?$e!es) +uego no permitir /ue
e! operador modi6i/ue e! tama1o de !a ventana) Usar m2todo
set.esi(a!e /ue tami2n re/uiere como par9metro un va!or true o 6a!se)
import javax.swing.*;
public class Formulario6 extends JFrame{
Formulario6() {
setLayout(null);
}
public static void main(String[] ar) {
Formulario6 formulario1=new Formulario6();
formulario1.setBounds(0,0,1024,800);
formulario1.setResizable(false);
formulario1.setVisible(true);
}
}
Programacin orientada a Objeto - POO
15
Prctica 2 JFrame - JLabel
.ea!i(ar una ventana /ue muestre e! nomre de un programa
en !a parte superior y su nmero de versin en !a parte
in6erior) Ao permitir modi6icar e! tama1o de !a ventana en
tiempo de e0ecucin)
Programacin orientada a Objeto - POO
16
Pr9ctica < B %&rame C %+ae!
import javax.swing.*;
public class Formulario extends JFrame {
private JLabel label1,label2;
public Formulario() {
setLayout(null);
label1=new JLabel("Sistema de Optimizacin");
label1.setBounds(10,20,300,30);
add(label1);
label2=new JLabel("Vesion 1.0");
label2.setBounds(10,100,100,30);
add(label2);
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,300,200);
formulario1.setResizable(false);
formulario1.setVisible(true);
}
}
Programacin orientada a Objeto - POO
17
Due son !os eventos
+a interaccin de! usuario con un programa GUI 4grap,ica! user
inter6ace5 se e6ecta a trav2s de eventos)
Cada evento tiene una 6uente' !a cua! es !a componente /ue !o
produce)
S!o ciertas c!ases de o0etos pueden atrapar eventosE o0etos
/ue tienen imp!ementado e! acceso a !os m2todos de ciertas
c!ases especia!es /ue escuc,an eventos 4!istener5)
Programacin orientada a Objeto - POO
18
Due son !os eventos
+a interaccin de! usuario con un programa GUI 4grap,ica! user
inter6ace5 se e6ecta a trav2s de eventos)
Cada evento tiene una 6uente' !a cua! es !a componente /ue !o
produce)
S!o ciertas c!ases de o0etos pueden atrapar eventosE o0etos
/ue tienen imp!ementado e! acceso a !os m2todos de ciertas
c!ases especia!es /ue escuc,an eventos 4!istener5)
Programacin orientada a Objeto - POO
19
Du2 son !os eventos C #0emp!o
Cuando un usuario oprime un otn en una GUI' e! evento
producido por e! otn puede ser atrapado 4escuc,ado5 por
cua!/uier o0eto cuya c!ase tenga imp!ementado acceso a
m2todos Action+istener
Programacin orientada a Objeto - POO
20
Prctica 3 JFrame - JButton
#! proceso para a1adir otones a un contro! %&rame es simi!ar
a a1adir contro!es de tipo %+ae!)
%ava imp!ementa e! concepto de inter6aces para poder !!amar
a m2todos de una c!ase e$istente a una c!ase desarro!!ada
por nosotros)
Con6eccionar una ventana /ue muestre un otn) Cuando se
presione 6ina!i(ar !a e0ecucin de! programa %ava)
Programacin orientada a Objeto - POO
21
Prctica 3 JFrame - JButton
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements ActionListener {
JButton boton1;
public Formulario() {
setLayout(null);
boton1=new JButton("Finalizar");
boton1.setBounds(300,250,100,30);
add(boton1);
boton1.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==boton1) {
System.exit(0);
} }
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,450,350);
formulario1.setVisible(true);
} }
Formulario2
Programacin orientada a Objeto - POO
22
Prctica 3.1 JFrame - JButton
Con6eccionar una ventana /ue contenga tres o0etos de !a
c!ase %*utton con !as eti/uetas 7:7' 7<7 y 7>7) A! presionarse
camiar e! t?tu!o de! %&rame indicando cu9! otn se presion)
Programacin orientada a Objeto - POO
23
Prctica 3.1 JFrame - JButton
import javax.swing.*;
import java.awt.event.*;
public class Formulario21 extends JFrame implements ActionListener{
private JButton boton1,boton2,boton3;
public Formulario21() {
setLayout(null);
boton1=new JButton("1");
boton1.setBounds(10,100,90,30);
add(boton1);
boton1.addActionListener(this);
boton2=new JButton("2");
boton2.setBounds(110,100,90,30);
add(boton2);
boton2.addActionListener(this);
boton3=new JButton("3");
boton3.setBounds(210,100,90,30);
add(boton3);
boton3.addActionListener(this);
}
1+2
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==boton1) {
setTitle("boton 1");
}
if (e.getSource()==boton2) {
setTitle("boton 2");
}
if (e.getSource()==boton3) {
setTitle("boton 3");
}
} 1
public static void main(String[] ar){
Formulario21 formulario1=new Formulario21();
formulario1.setBounds(0,0,350,200);
formulario1.setVisible(true);
} 2
Formulario21
Programacin orientada a Objeto - POO
24
JFrame - JTextField
#! contro! %Te$t&ie!d permite a! operador de! programa ingresar
una cadena de caracteres por tec!ado) %Te$t&ie!d cump!e !a
6uncin de !a c!ase Scanner para !a entrada de datos)
Con6eccionar un programa /ue permita ingresar e! nomre
de usuario y cuando se presione un otn mostrar e! va!or
ingresado en !a arra de t?tu!os de! %&rame)
Prctica 4
Programacin orientada a Objeto - POO
25
Prctica 4 - JFrame - JTextField
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements ActionListener{
private JTextField textfield1;
private JLabel label1;
private JButton boton1;
public Formulario() {
setLayout(null);
label1=new JLabel("Usuario:");
label1.setBounds(10,10,100,30);
add(label1);
textfield1=new JTextField();
textfield1.setBounds(120,10,150,20);
add(textfield1);
boton1=new JButton("Aceptar");
boton1.setBounds(10,80,100,30);
add(boton1);
boton1.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==boton1) {
String cad=textfield1.getText();
setTitle(cad);
}
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,300,150);
formulario1.setVisible(true);
}
}
Proyecto 3
Programacin orientada a Objeto - POO
26
Prctica 4.1 JFrame - JTextField
Con6eccionar un programa /ue permita ingresar dos nmeros
en contro!es de tipo %Te$t&ie!d' !uego sumar !os dos va!ores
ingresados y mostrar !a suma en !a arra de! t?tu!o de! contro!
%&rame)
Programacin orientada a Objeto - POO
27
Prctica 4.1 JFrame - JTextField
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements
ActionListener{
private JTextField textfield1,textfield2;
private JButton boton1;
public Formulario() {
setLayout(null);
textfield1=new JTextField();
textfield1.setBounds(10,10,100,30);
add(textfield1);
textfield2=new JTextField();
textfield2.setBounds(10,50,100,30);
add(textfield2);
boton1=new JButton("Sumar");
boton1.setBounds(10,90,100,30);
add(boton1);
boton1.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==boton1) {
String cad1=textfield1.getText();
String cad2=textfield2.getText();
int x1=Integer.parseInt(cad1);
int x2=Integer.parseInt(cad2);
int suma=x1+x2;
String total=String.valueOf(suma);
setTitle(total);
}
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,140,150);
formulario1.setVisible(true);
}
}
Proyecto 31
Programacin orientada a Objeto - POO
28
Jframe - JTextArea
#! contro! de tipo %Te$tArea permite ingresar m!tip!es
!?neas' a di6erencia de! contro! de tipo %Te$t&ie!d)
Prctica 5
Con6eccionar un programa /ue permita ingresar un mai! en
un contro! de tipo %Te$t&ie!d y e! cuerpo de! mai! en un
contro! de tipo %Te$tArea)
Programacin orientada a Objeto - POO
29
Prctica 5 JFrame JTextField - JTextArea
import javax.swing.*;
public class Formulario extends JFrame{
private JTextField textfield1;
private JTextArea textarea1;
public Formulario() {
setLayout(null);
textfield1=new JTextField();
textfield1.setBounds(10,10,200,30);
add(textfield1);
textarea1=new JTextArea();
textarea1.setBounds(10,50,400,300);
add(textarea1);
}
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,540,400);
formulario1.setVisible(true);
}
Proyecto 4
Programacin orientada a Objeto - POO
30
Prctica 5.1 JFrame JTextField - JTextArea
Proyecto 41
import javax.swing.*;
public class Formulario extends JFrame{
private JTextField textfield1;
private JScrollPane scrollpane1;
private JTextArea textarea1;
public Formulario() {
setLayout(null);
textfield1=new JTextField();
textfield1.setBounds(10,10,200,30);
add(textfield1);
textarea1=new JTextArea();
scrollpane1=new JScrollPane(textarea1);
scrollpane1.setBounds(10,50,400,300);
add(scrollpane1);
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,540,400);
formulario1.setVisible(true);
}
}
Programacin orientada a Objeto - POO
31
Jframe - JComboBox
#! contro! %Como*o$ permite se!eccionar un String de una
!ista)
Para inicia!i(ar !os String /ue contendr9 e! %Como*o$
deemos !!amar a! m2todo addItem tantas veces como
e!ementos /ueremos cargar)
Un evento muy ti! con este contro! es cuando e! operador
se!ecciona un Item de !a !ista) Para capturar !a se!eccin de
un item deemos imp!ementar !a inter6ace Item+istener /ue
contiene un m2todo !!amada itemStateC,anged)
Programacin orientada a Objeto - POO
32
Prctica 6 Jframe - JComboBox
Cargar en un %Como*o$ !os nomres de varios co!ores) A!
se!eccionar a!guno mostrar en !a arra de t?tu!o de! %&rame
e! String se!eccionado.
Programacin orientada a Objeto - POO
33
Prctica 6 Jframe - JComboBox
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements ItemListener{
private JComboBox combo1;
public Formulario() {
setLayout(null);
combo1=new JComboBox();
combo1.setBounds(10,10,80,20);
add(combo1);
combo1.addItem("rojo");
combo1.addItem("vede");
combo1.addItem("azul");
combo1.addItem("amarillo");
combo1.addItem("negro");
combo1.addItemListener(this);
}
}
public void itemStateChanged(ItemEvent e) {
if (e.getSource()==combo1) {
String
seleccionado=(String)combo1.getSelectedItem();
setTitle(seleccionado);
}
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,200,150);
formulario1.setVisible(true);
}
FORMULARIO 7
Programacin orientada a Objeto - POO
34
Prctica 6.1 JFrame - JComboBox
Fisponer tres contro!es de tipo %Como*o$ con va!ores entre
; y <GG 4cada uno representa !a cantidad de ro0o' verde y
a(u!5) +uego a! presionar un otn pintar e! mismo con e!
co!or /ue se genera cominando !os va!ores de !os
%Como*o$)
Programacin orientada a Objeto - POO
35
Prctica 6.1 Jframe - JComboBox
FORMULARIO 71
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Formulario extends JFrame implements
ActionListener{
private JLabel label1,label2,label3;
private JComboBox combo1,combo2,combo3;
private JButton boton1;
public Formulario() {
setLayout(null);
label1=new JLabel("Rojo:");
label1.setBounds(10,10,100,30);
add(label1);
combo1=new JComboBox();
combo1.setBounds(120,10,50,30);
for(int f=0;f<=255;f++) {
combo1.addItem(String.valueOf(f));
}
}
add(combo1);
label2=new JLabel("Verde:");
label2.setBounds(10,50,100,30);
add(label2);
combo2=new JComboBox();
combo2.setBounds(120,50,50,30);
for(int f=0;f<=255;f++) {
combo2.addItem(String.valueOf(f));
}
add(combo2);
label3=new JLabel("Azul:");
label3.setBounds(10,90,100,30);
add(label3);
combo3=new JComboBox();
combo3.setBounds(120,90,50,30);
for(int f=0;f<=255;f++) {
combo3.addItem(String.valueOf(f));
}
add(combo3);
boton1=new JButton("Fijar Color");
boton1.setBounds(10,130,100,30);
add(boton1);
boton1.addActionListener(this);
Programacin orientada a Objeto - POO
36
JFrame JMenuBar Jmenu - JMenuItem
Cuando necesitamos imp!ementar un men ,ori(onta! en !a
parte superior de un %&rame re/uerimos de un o0eto de !a
c!ase %Menu*ar' uno o m9s o0etos de !a c!ase %Menu y por
!timo o0etos de !a c!ase %MenuItem)
Par !a captura de eventos deemos imp!ementar !a
inter6ace Action+istener y asociar!o a !os contro!es de tipo
%MenuItem' e! mismo se dispara a! presionar con e! mouse
e! %MenuItem)
Con6eccionaremos un men de opciones /ue contenga tres
opciones /ue permita camiar e! co!or de 6ondo de! %&rame
a !os co!oresE ro0o' verde y a(u!)
Prctica 7
Programacin orientada a Objeto - POO
37
JFrame JMenuBar Jmenu - JMenuItem
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Formulario extends JFrame implements ActionListener{
private JMenuBar mb;
private JMenu menu1;
private JMenuItem mi1,mi2,mi3;
public Formulario() {
setLayout(null);
mb=new JMenuBar();
setJMenuBar(mb);
menu1=new JMenu("Opciones");
mb.add(menu1);
mi1=new JMenuItem("Rojo");
mi1.addActionListener(this);
menu1.add(mi1);
mi2=new JMenuItem("Verde");
mi2.addActionListener(this);
menu1.add(mi2);
mi3=new JMenuItem("Azul");
mi3.addActionListener(this);
menu1.add(mi3);
}
public void actionPerformed(ActionEvent e) {
Container f=this.getContentPane();
if (e.getSource()==mi1) {
f.setBackground(new Color(255,0,0));
}
if (e.getSource()==mi2) {
f.setBackground(new Color(0,255,0));
}
if (e.getSource()==mi3) {
f.setBackground(new Color(0,0,255));
}
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(10,20,300,200);
formulario1.setVisible(true);
} }
Programacin orientada a Objeto - POO
38
JFrame JMenuBar Jmenu - JMenuItem
Con6eccionaremos un men de opciones /ue contenga
adem9s de! %Menu de !a arra otros dos o0etos de !a c!ase
%Menu /ue dependan de! primero)
Uno dee mostrar dos %MenuItem /ue permitan modi6icar e!
tama1o de! %&rame y e! segundo tami2n dee mostrar dos
%MenuItem /ue permitan camiar e! co!or de 6ondo)
Prctica 7.1
Programacin orientada a Objeto - POO
39
JFrame JMenuBar Jmenu - JMenuItem
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Formulario extends JFrame implements
ActionListener{
private JMenuBar mb;
private JMenu menu1,menu2,menu3;
private JMenuItem mi1,mi2,mi3,mi4;
public Formulario() {
setLayout(null);
mb=new JMenuBar();
setJMenuBar(mb);
menu1=new JMenu("Opciones");
mb.add(menu1);
menu2=new JMenu("Tamao de la ventana");
menu1.add(menu2);
menu3=new JMenu("Color de fondo");
menu1.add(menu3);
}
}
mi1=new JMenuItem("640*480");
menu2.add(mi1);
mi1.addActionListener(this);
mi2=new JMenuItem("1024*768");
menu2.add(mi2);
mi2.addActionListener(this);
mi3=new JMenuItem("Rojo");
menu3.add(mi3);
mi3.addActionListener(this);
mi4=new JMenuItem("Verde");
menu3.add(mi4);
mi4.addActionListener(this);
Programacin orientada a Objeto - POO
40
JFrame JMenuBar Jmenu - JMenuItem
public void actionPerformed(ActionEvent e) {
if (e.getSource()==mi1) {
setSize(640,480);
}
if (e.getSource()==mi2) {
setSize(1024,768);
}
if (e.getSource()==mi3) {
getContentPane().setBackground(new Color(255,0,0));
}
if (e.getSource()==mi4) {
getContentPane().setBackground(new Color(0,255,0));
}
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,300,200);
formulario1.setVisible(true);
}
}
Programacin orientada a Objeto - POO
41
Muchas Gracias
Eduardo Canales C.
lcanales@utalca.cl

Potrebbero piacerti anche