Você está na página 1de 19

PROGRAMACION II M.Sc.

Irma Prado
1

AWT SWING TERCERA PARTE
La interfaz de usuario (GUI) es la parte del programa que permite al usuario
interaccionar con l. Las interfaces grficas de usuario (GUI) ofrecen al usuario
ventanas, cuadros de dilogo, barras de herramientas, botones, listas desplegables y
muchos otros elementos.

Swing es el Paquete de Java para la generacin del GUI en aplicaciones reales
de gran tamao.

Para la creacin de interfaz grfica con SWING se deben seguir exactamente los mismos
pasos que se hacan con el paquete AWT, considerando las siguientes diferencias:

1. En una ventana de SWING viene incorporado el botn de cierre de la ventana, es
decir que en un objeto de JFrame no necesita programar el cierre de ventana.
2. Cada ventana de SWING tiene incorporado un panel de contenido donde se
pueden agregar los controles. Utilice este panel con el mtodo getContentPane().
En resumen, cada objeto de JFrame tiene un panel incorporado que se lo utiliza
invocando al mtodo getContentPane().

Pregunta #1.- Explique 3 diferencias fundamentales entre AWT y SWING:

Ejemplo 1. Utilizando swing escriba hola mundo en una ventana:

Solucin 1: Primero definimos la estructura del proyecto, en este caso el proyecto se
llama uno, tiene dos clases, ej1 donde se incorporan los detalles de la ventana y un
programa principal donde el objeto de la clase JFrame es creado, principalmente. En
eclipse queda as:



La clase ej1 tiene el siguiente cdigo:
import java.awt.Color;
import java.awt.Font;
import javax.swing.*;
public class ej1 extends JFrame {
/** *ejemplo 1
*Hola mundo
*M.Sc. Irma Prado
*/
public ej1(String t) {
super(t);
this.setSize(700, 300); //ancho y alto de la ventana
/*un objeto JFrame tiene un contenedor o panel por defecto que
se lo llama utilizando el mtodo getContentPane() */
this.getContentPane().setBackground(new Color(51,255,204));// color del panel
this.setLayout(null);

PROGRAMACION II M.Sc. Irma Prado
2


//******* ahora preparamos la salida en la etiqueta
JLabel JLsalida = new JLabel("Hola mundo");
// hemos creamos una etiqueta.JLsalida con el texto Hola mundo
JLsalida.setBounds(150,20, 300,40); //x,y,ancho, alto de la etiqueta
JLsalida.setForeground(new Color(255,102,102)); // color del texto
JLsalida.setFont(new Font("Arial black", Font.BOLD, 40)); //tipo de letra,
negrita y tamao
this.getContentPane().add(JLsalida); //agregamos la etiqueta al panel de la
ventana
}
}

El cdigo de la clase principal es:
import javax.swing.JFrame;

public class principal {

public static void main(String[] args) {
ej1 obj=new ej1("ejemplo de una ventana");
obj.setVisible(true);//mostramos la ventana
obj.setLocationRelativeTo(null); //ubicamos la ventana al centro
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//sale de la aplicacion
}
}

Pregunta #2.- Son varias:
a) Qu hace super(t);?
b) En la clase ej1, Por qu se utiliza this?.
c) En la lnea de cdigo
this.getContentPane().setBackground(new Color(51,255,204 .
Por qu se utiliza getContentPane()?.
d) Qu hace this.setLayout(null);?.
e) Qu hace el mtodo setBounds cuando es utilizado mediante un objeto de la
clase JLabel?
f) Explique el proceso de crear una ventana.
g) Explique el proceso de crear una etiqueta con JLabel.
h) Cules son los componentes que se utilizaron en este ejemplo?, descrbalos.
Ejemplo 2.- Programa para desplegar en una ventana la tabla de multiplicacin de un
nmero. (no se olvide de utilizar ctrl + barra espaciadora para completar las sentencias)
Solucin 2.- La estructura del proyecto es la siguiente:

PROGRAMACION II M.Sc. Irma Prado
3


Cdigo de la clase principal:
import javax.swing.JFrame;
public class principal {
/**
* M.Sc. Irma Prado
*/
public static void main(String[] args) {
Tut1 ventana=new Tut1("Tabla de Multiplicacion",500,600);
//-- se ha creado una ventana de 500 por 600 y con titulo Tabla de...
ventana.setVisible(true);// la ventana se hace visible
ventana.setLocationRelativeTo(null);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}


El cdigo de la clase Tut1 es:

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.Border;


public class Tut1 extends JFrame {
final JButton boton;
final JLabel texto;
final JLabel salida;
final JTextField entrada;
public Tut1(String Titulo, int x, int y1)
{
super(Titulo);
this.setSize(x, y1);
this.getContentPane().setBackground(new Color(51,255,204));
this.setLayout(null);
this.getContentPane().setLocale(null);
PROGRAMACION II M.Sc. Irma Prado
4

//anulamos el gestor de organizacion del panel

//-------programamos el boton...
boton=new JButton("Generar tabla");
boton.setBounds(50,100,150,30);//x,y,ancho, alto
boton.setBackground(new Color(0,192,0));

// ---texto de salida---
texto=new JLabel("Escriba el nmero: ");
texto.setSize(200, 120); //ancho alto
texto.setFont(new Font("calibri", Font.BOLD, 20));
//hemos cambiado el tipo de letra
texto.setForeground(new Color( 46,0,184));

// ---salida para la tabla
salida=new JLabel();
salida.setBounds(170,60,300,500);//x,y,ancho, alto
salida.setBackground(new Color(204,255,51));
salida.setFont(new Font("calibri", Font.BOLD, 20));
//hemos cambiado ell tipo de letra
salida.setForeground(new Color( 102,51,255));

//--- para la entrada de datos
entrada=new JTextField();
entrada.setBounds(180, 30,50, 40); //x,y,ancho, alto
entrada.setFont(new Font("calibri", Font.BOLD, 25));

//------subimos todo al panel de contenidos
this.getContentPane().add(texto);
this.getContentPane().add(entrada);
this.getContentPane().add(boton);
this.getContentPane().add(salida);

//------accion del boton
boton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try
{
int aux=Integer.parseInt(entrada.getText());
//se ha convertido la entrada a entero
tabla ot=new tabla(); // creamos el objeto ot
ot.setn(aux);
ot.generar_tabla();
salida.setText(ot.getT());
}
catch (Exception e1)
{
salida.setText("");// limpiamos la salida
JOptionPane.showMessageDialog(null, "Error!. Tiene
que ser un nmero ");
PROGRAMACION II M.Sc. Irma Prado
5

entrada.setText(null); //limpiamos la entrada
}
}
});
}
}

El contenido de la clase Tabla es:
public class tabla {
int n;
String T;
public tabla() {
T=new String();
}
public void setn(int n)
{
this.n=n;
}
public String getT()
{
return T;
}
public void generar_tabla()
{
String t="";
int r;//para el resultado
T="<html> Tabla de "+n; // html como pagina web
String salto="<br/>";//salto en codigo html
T=T+salto;
for(int i=1;i<=10;i++)
{
r=i*n;
t=+i+" * "+n+" = "+r;
T=T+t+salto;
}
T=T+"<br/> </html>";
}
}


Explicacin del mtodo generar_tabla():
Primero. El algoritmo ya lo conocemos, calcula la tabla de un nmero n, algoritmo
ampliamente conocido que no requiere de mayor explicacin.
Segundo. El salto de lnea \n no funciona, entonces, luego de investigar , se encontr
que se puede utilizar cdigo html ( de pginas Web) dentro de un String para que sea
reconocido enter al desplegar el String por algn control.
Tercero. Vamos a explicar el cdigo HTML, solo lo que hemos utilizado:
<html> se utiliza al iniciar una pgina Web.
</br> produce un salto de lnea
</html> se utiliza al finalizar la pgina web.
PROGRAMACION II M.Sc. Irma Prado
6

Pregunta #3.- Son varias:
a) En qu clase se llega a crear la ventana?
b) La ventana utilizada en el ejemplo tiene constructor?, cul es? , Qu hace
ese constructor?
c) Cules son los controles que se han utilizado en el ejemplo?
d) qu hace this.setSize(x, y1); ?.
e) Cul es la diferencia entre boton.setBounds(50,100,150,30);//x,y,ancho,
alto y salida.setBounds(170,60,300,500);//x,y,ancho, alto?
f) Para qu se utiliza //?
g) Por qu fue necesario utilizar cdigo HTML?
h) Qu controla try/catch en este caso?
i) Para qu se utiliza this.getContentPane().add?
j) Para qu se utiliza boton.addActionListener ?
k) Qu hace int aux=Integer.parseInt(entrada.getText()); ?
l) Qu es ot?
m) Qu hace ot.setn(aux); ?
n) Qu hace ot.getT());
o) Qu hace salida.setText(ot.getT()); ?
p) Cul es la diferencia entre this.n y n en la asignacin: this.n=n;?
q) Cul es la clase padre de la clase Tabla?
r) Cul es la clase padre de la clase principal?
s) Cul es la clase padre de la clase Tut1?

Controles del paquete Swing.
Existen una variedad de controles o clases del paquete Swing, los mismos que podemos
apreciar en el siguiente cuadro:

PROGRAMACION II M.Sc. Irma Prado
7



Estos controles los vamos aplicar en los sgtes ejemplos:

Ejemplo 3.- Dada la figura geomtrica, mostrar el nombre. Programa que utiliza cuatro
botones con imgenes (descargue las imgenes y cpielas en las carpetas del proyecto).
Solucin.- El proyecto tiene la siguiente estructura:



Contenido de la clase Ventana:
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
PROGRAMACION II M.Sc. Irma Prado
8

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Ventana extends JFrame {
private JButton boton1;
private JButton boton2;
private JButton boton3;
private JButton boton4;
final JLabel texto;
final JLabel salida;

public Ventana(String Titulo, int x, int y1)
{
super(Titulo);
this.setSize(x, y1);
this.getContentPane().setBackground(new Color(51,255,204));

this.setLayout(null);
this.getContentPane().setLocale(null);
//anulamos el gestor de organizacion del panel

ImageIcon im1 = new ImageIcon("cuadrado.jpg");
ImageIcon im2 = new ImageIcon("rectangulo.jpg");
ImageIcon im3 = new ImageIcon("triangulo.jpg");
ImageIcon im4 = new ImageIcon("circulo.jpg");

//-------programamos el botones
boton1=new JButton(im1);
boton1.setBounds(50,100,150,100);//x,y,ancho, alto
boton1.setBackground(new Color(255,255,255));

boton2=new JButton(im2);
boton2.setBounds(200,100,150,100);//x,y,ancho, alto
boton2.setBackground(new Color(255,255,255));

boton3=new JButton(im3);
boton3.setBounds(350,100,150,100);//x,y,ancho, alto
boton3.setBackground(new Color(255,255,255));

boton4=new JButton(im4);
boton4.setBounds(500,100,150,100);//x,y,ancho, alto
boton4.setBackground(new Color(255,255,255));

// ---texto de salida---
texto=new JLabel("FIGURAS GEOMETRICAS ");
texto.setBounds(240, 5, 600, 120);
texto.setFont(new Font("calibri", Font.BOLD, 30)); //cambiamos el tipo
de letra
PROGRAMACION II M.Sc. Irma Prado
9

texto.setForeground(new Color( 46,0,184));

// ---salida para la tabla
salida=new JLabel();
salida.setBounds(170,60,450,500);//x,y,ancho, alto
salida.setBackground(new Color(204,255,51));
salida.setFont(new Font("ARIAL", Font.BOLD, 60)); //cambiamos el tipo
de letra
salida.setForeground(new Color( 102,51,255));

//------subimos todo al panel de contenidos
this.getContentPane().add(texto);
this.getContentPane().add(boton1);
this.getContentPane().add(boton2);
this.getContentPane().add(boton3);
this.getContentPane().add(boton4);
this.getContentPane().add(salida);

//------accion de los botones

boton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource()==boton1){
salida.setText("CUADRADO");
}}
});
boton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource()==boton2){
salida.setText("RECTANGULO");
}}
});
boton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource()==boton3){
salida.setText("TRIANGULO");
}}
});
boton4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource()==boton4){
salida.setText("CIRCULO");
}}
});
}
}



El cdigo de la clase principal es:
PROGRAMACION II M.Sc. Irma Prado
10

import javax.swing.JFrame;
public class principal {
/**
* M.Sc. Irma Prado
*/
public static void main(String[] args) {
Ventana v=new Ventana("Figuras Geometricas",700,400);
//-- se ha creado una ventana de 500 por 600 y con titulo Figuras Geo...
v.setVisible(true);// la ventana se hace visible
v.setLocationRelativeTo(null);
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Este programa genera la siguiente ventana con botones con imgenes, siempre y cuando
tenga las imgenes:













Pregunta #4.

a) Cul es el proceso para la creacin y utilizacin de un objeto de la clase JButton?.
b) Cul es el proceso para la creacin y utilizacin de un objeto de la clas JLabel?
c) Explique similitudes entre los procesos de crear objetos de la clase Jbutton y la clase
JLabel.
d) Cul es la sentencia para agregar texto a un botn y cul es la sentencia para agregar
imagen al botn?
e) Para qu se utiliza addActionListener?
f) Para qu se utiliza getContentPane();?
g) Para qu se utiliza v.setLocationRelativeTo(null);
h) Para qu se utiliza v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



Ejemplo 4.- Ventana que cambia de colores entre rojo, amarillo y verde. Ejemplo con
JRadioButton
Solucin 4.- Para ver combinaciones de colores visite:
http://gucky.uni-muenster.de/cgi-bin/rgbtab-en
Es una sola clase:
PROGRAMACION II M.Sc. Irma Prado
11

import java.awt.Color;

import javax.swing.*;
import javax.swing.event.*;
public class radiob extends JFrame implements ChangeListener{
//ChangeListener captura el cambio del objeto seleccionado
private JRadioButton radio1,radio2,radio3; //definimos los botones
private ButtonGroup bg; //objeto donde agruparemos los botones
public radiob() {
setLayout(null);
bg=new ButtonGroup();

radio1=new JRadioButton("Rojo"); //creacion del objeto y el texto
radio1.setBounds(10,20,100,30);
radio1.addChangeListener(this); //metodo que captura el evento clic
add(radio1); //agregamos a la ventana
bg.add(radio1); //agregamos el boton al grupo
radio2=new JRadioButton("Amarillo");
radio2.setBounds(10,70,100,30);
radio2.addChangeListener(this);
add(radio2);
bg.add(radio2);//agregamos el boton al grupo
radio3=new JRadioButton("Verde");
radio3.setBounds(10,120,100,30);
radio3.addChangeListener(this);
add(radio3);
bg.add(radio3); //agregamos el boton al grupo
}

public void stateChanged(ChangeEvent e) {
if (radio1.isSelected()) {
this.getContentPane().setBackground(new Color(255,0,0));
}
if (radio2.isSelected()) {
this.getContentPane().setBackground(new Color(255,255,0));
}
if (radio3.isSelected()) {
this.getContentPane().setBackground(new Color(0,204,0));
}
}

public static void main(String[] ar) {
radiob f=new radiob();
f.setBounds(0,0,350,230);
f.setVisible(true);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

PROGRAMACION II M.Sc. Irma Prado
12


Ejemplo 5. Desplegar una tabla de multiplicacin seleccionada con JCheckBox, adems
este proyecto utiliza dos ventanas y paso de parmetros entre ellas.
Solucin 5. La estructura del proyecto es la siguiente:



Cdigo de la clase Formulario:
import javax.swing.*;
import javax.swing.event.*;
public class Formulario extends JFrame implements ChangeListener{
private JCheckBox check1,check2,check3,check4,check5,check6,
check7,check8,check9,check10;
int aux;
ventana2 v2;
public Formulario() {
v2=new ventana2();
setLayout(null);
check1=new JCheckBox("tabla de 1");
check1.setBounds(10,10,150,30);
check1.addChangeListener(this);
add(check1);
check2=new JCheckBox("Tabla de 2");
check2.setBounds(10,50,150,30);
check2.addChangeListener(this);
add(check2);
check3=new JCheckBox("Tabla de 3");
check3.setBounds(10,90,150,30);
check3.addChangeListener(this);
add(check3);
check4=new JCheckBox("tabla de 4");
check4.setBounds(10,130,150,30);
check4.addChangeListener(this);
add(check4);
check5=new JCheckBox("Tabla de 5");
check5.setBounds(10,170,150,30);
check5.addChangeListener(this);
add(check5);
check6=new JCheckBox("Tabla de 6");
check6.setBounds(10,210,150,30);
check6.addChangeListener(this);
add(check6);
check7=new JCheckBox("Tabla de 7");
check7.setBounds(10,250,150,30);
check7.addChangeListener(this);
add(check7);
PROGRAMACION II M.Sc. Irma Prado
13

check8=new JCheckBox("tabla de 8");
check8.setBounds(10,290,150,30);
check8.addChangeListener(this);
add(check8);
check9=new JCheckBox("Tabla de 9");
check9.setBounds(10,340,150,30);
check9.addChangeListener(this);
add(check9);
check10=new JCheckBox("Tabla de 10");
check10.setBounds(10,390,150,30);
check10.addChangeListener(this);
add(check10);
}

public void stateChanged(ChangeEvent e){

if (check1.isSelected()==true) {
aux=1;
}
if (check2.isSelected()==true) {
aux=2;
}
if (check3.isSelected()==true) {
aux=3;
}
if (check4.isSelected()==true) {
aux=4;
}
if (check5.isSelected()==true) {
aux=5;
}
if (check6.isSelected()==true) {
aux=6;
}
if (check7.isSelected()==true) {
aux=7;
}
if (check8.isSelected()==true) {
aux=8;
}
if (check9.isSelected()==true) {
aux=9;
}
if (check10.isSelected()==true) {
aux=10;
}
v2.setk(aux);
v2.setVisible(true);
}

public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(50,0,200,500);
formulario1.setVisible(true);
formulario1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
PROGRAMACION II M.Sc. Irma Prado
14

}
}

Cdigo de la clase Tabla:
public class Tabla {
int n;
String T;
public Tabla() {
T=new String();
}
public void setn(int n)
{
this.n=n;
}
public String getT()
{
return T;
}
public void generar_tabla()
{
String t="";
int r;//para el resultado
T="<html> Tabla de "+n; // html como pagina web
String salto="<br/>";//salto en codigo html
T=T+salto;
for(int i=1;i<=10;i++)
{
r=i*n;
t=+i+" * "+n+" = "+r;
T=T+t+salto;
}
T=T+"<br/> </html>";
}
}


Cdigo de la clase ventana2:
import java.awt.Color;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;


public class ventana2 extends JFrame {

JLabel salida;
int k;
Tabla ot=new Tabla(); // creamos el objeto ot
public ventana2(){
PROGRAMACION II M.Sc. Irma Prado
15

super("Tabla de Multiplicacion");
this.setSize(500,600);
this.getContentPane().setBackground(new Color(51,255,204));
this.setLayout(null);
this.setLocationRelativeTo(null);
this.getContentPane().setLocale(null);
// ---salida para la tabla
salida=new JLabel();
salida.setBounds(170,60,300,500);//x,y,ancho, alto
salida.setBackground(new Color(204,255,51));
salida.setFont(new Font("calibri", Font.BOLD, 20));
//hemos cambiado ell tipo de letra
salida.setForeground(new Color( 102,51,255));
this.getContentPane().add(salida);


ot.setn(k);
ot.generar_tabla();
salida.setText(ot.getT());
}
public void actualice(int p)
{
ot.setn(p);
ot.generar_tabla();
salida.setText(ot.getT());
}
public void setk(int p)
{
k=p;
actualice(k);
}
}

Preguntas #6.
a) Cul es el objeto de una clase que es propiedad en la otra?
b) Cul es el mtodo que hace que una ventana se ubique en el centro de la
pantalla?.

Ejemplo 6. Ahora utilizaremos men de opciones para desplegar las tablas de
multiplicacin
Solucin 6.- La estructura del
proyecto:



PROGRAMACION II M.Sc. Irma Prado
16


La clase Tabla es la misma que hemos estado utilizando en anteriores ejemplos:
public class Tabla {
int n;
String T;
public Tabla() {
T=new String();
}
public void setn(int n)
{
this.n=n;
}
public String getT()
{
return T;
}
public void generar_tabla()
{
String t="";
int r;//para el resultado
T="<html> Tabla de "+n; // html como pagina web
String salto="<br/>";//salto en codigo html
T=T+salto;
for(int i=1;i<=10;i++)
{
r=i*n;
t=+i+" * "+n+" = "+r;
T=T+t+salto;
}
T=T+"<br/> </html>";
}
}

El cdigo de la clase for_menu:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class for_menu extends JFrame implements ActionListener{
private JMenuBar mb;
private JMenu menu1,menu2,menu3;
private JMenuItem mi11,mi12,mi13,mi14, mi15;
private JMenuItem mi16,mi17,mi18,mi19, mi110;
int aux;
JLabel salida;
Tabla ot=new Tabla(); // creamos el objeto ot
public for_menu() {
setLayout(null);
mb=new JMenuBar();
setJMenuBar(mb);
menu1=new JMenu("Tablas de multiplicacion"); //raiz
PROGRAMACION II M.Sc. Irma Prado
17

mb.add(menu1);
//--- primer nivel---
menu2=new JMenu("Del 1 al 5");
menu1.add(menu2); //depende de la raiz
menu3=new JMenu("Del 6 al 10");
menu1.add(menu3); //depende de la raz
//---segundo nivel para la primera opcion----
mi11=new JMenuItem("Tabla de 1");
menu2.add(mi11);
mi11.addActionListener(this);

mi12=new JMenuItem("Tabla de 2");
menu2.add(mi12);
mi12.addActionListener(this);

mi13=new JMenuItem("Tabla de 3");
menu2.add(mi13);
mi13.addActionListener(this);

mi14=new JMenuItem("Tabla de 4");
menu2.add(mi14);
mi14.addActionListener(this);

mi15=new JMenuItem("Tabla de 5");
menu2.add(mi15);
mi15.addActionListener(this);

//--- segundo nivel para la segunda opcion-------
mi16=new JMenuItem("Tabla de 6");
menu3.add(mi16);
mi16.addActionListener(this);

mi17=new JMenuItem("Tabla de 7");
menu3.add(mi12);
mi13.addActionListener(this);

mi18=new JMenuItem("Tabla de 8");
menu3.add(mi18);
mi18.addActionListener(this);

mi19=new JMenuItem("Tabla de 9");
menu3.add(mi19);
mi19.addActionListener(this);

mi110=new JMenuItem("Tabla de 10");
menu3.add(mi110);
mi110.addActionListener(this);

// ---salida para la tabla
salida=new JLabel();
salida.setBounds(170,60,300,300);//x,y,ancho, alto
salida.setBackground(new Color(204,255,51));
salida.setFont(new Font("calibri", Font.BOLD, 20));
//hemos cambiado ell tipo de letra
salida.setForeground(new Color( 102,51,255));
PROGRAMACION II M.Sc. Irma Prado
18

this.getContentPane().add(salida);

}
public void actualice(int p)
{
ot.setn(p);
ot.generar_tabla();
salida.setText(ot.getT());
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==mi11) {
aux=1;
}
if (e.getSource()==mi12) {
aux=2;
}
if (e.getSource()==mi13) {
aux=3;
}
if (e.getSource()==mi14) {
aux=4;
}
if (e.getSource()==mi15) {
aux=5;
}
if (e.getSource()==mi16) {
aux=6;
}
if (e.getSource()==mi17) {
aux=7;
}
if (e.getSource()==mi18) {
aux=8;
}
if (e.getSource()==mi19) {
aux=9;
}
if (e.getSource()==mi110) {
aux=10;
}
actualice(aux);
}

public static void main(String[] ar) {
for_menu f1=new for_menu();
f1.setBounds(0,0,500,500);
f1.setVisible(true);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Pregunta:
a) Cul es el proceso para la creacin de un men de opciones?
PROGRAMACION II M.Sc. Irma Prado
19

b) Para qu se utiliza actionPerformed(ActionEvent e)?
c) Cuntas y cules son las clases que participan en la elaboracin de los menus?
d) Cul es la ventaja o diferencia entre los paquetes AWT y SWING?
e) Investigar JTextArea, dar ejemplos.

Ejecute los programas y presente un informe con las pantallas de los ejemplos + las respuestas de
las preguntas.

Você também pode gostar