Document

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Super JAVA SE for Windows with NetBeans IDE - Demo

Por: Julio Vsquez Paragulla ([email protected])






Proyecto Biblioteca (Programa 3, Captulo 9)
Disee una aplicacin que permita a una biblioteca tener un control sobre los prstamos de
libros. Cada libro tiene los siguientes datos: cdigo, ttulo, autor, editorial, ao de edicin,
fecha de devolucin, estado(libre, sala, domicilio). Considere las siguientes opciones de
men: Ingresos, Movimientos, Disponibilidad y Listado.
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m




La opcin de Ingresos
La opcin de Ingresos consiste en registrar los datos considerando lo siguiente:

a) El nmero de registro se genera automticamente en forma consecutiva
empezando en 1 para el primer libro.
b) El cdigo del libro debe tener 5 caracteres alfanumricos
c) El ao de edicin puede ser a partir del ao 2000 hasta el ao 2050
d) No se permite el ingreso de cdigos duplicados.
e) El estado del libro no se ingresa, pero debe considerarse como libre.






La opcin de Movimientos
La opcin de Movimientos consiste en seleccionar un libro previamente ingresado, mostrar
sus datos, y elegir su nuevo estado: Libre, prstamo a Sala, prstamo a Domicilio. Slo si el
nuevo estado fuera prstamo a domicilio se solicita fecha de devolucin; en otro caso la
fecha de devolucin toma el valor 00/00/00.

Para activar esta opcin slo se tiene que hacer clic en la ficha Movimientos como se
aprecia a continuacin. Observe que al pasar el mouse sobre sta ficha aparece un texto
con borde relacionado al contenido de la opcin.

27/08/2009 Pgina1

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])



h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m




La opcin de Disponibilidad

La opcin de Disponibilidad sirve para consultar los datos de un libro ya ingresado,
eligindolo desde un comboBox.





La opcin de Listado muestra todos los libros ingresados y almacenados en el arreglo de
objetos, en forma de tabla. Para mostrar la informacin actualizada debe hacer clic en el
botn de refrescar tabla.
La opcin de Listado


27/08/2009 Pgina2

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])



h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m




El cdigo esta compuesto de 9 clases: Libro, Libros, PanelIngresos, PanelMovimientos, PanelDisponibilidad,
PanelTabla, PanelListado, PanelPrincipal y Principal. Todas las clases deben estar en el mismo proyecto.
Desarrollo


Empecemos entonces creando un nuevo proyecto de nombre Problema03_09, nuevo paquete de nombre problema03. Clic
derecho en el paquete creado, elegimos nuevo Java Class de nombre Libro donde escribimos el siguiente cdigo
correspondiente a los atributos y a los constructores de la clase.
public class Libro{
// datos privados de la clase
pr i vat e St r i ng Ti t ul o, Aut or , Codi go, Edi t or i al , FechaDev;
pr i vat e St r i ng di a, mes, ani o, Est ado;
pr i vat e i nt Edi ci on;

// constructor vaco
public Libro() { }// fin del constructor vaco

// constructor que recibe un objeto Libro
public Libro(Libro uno){
set Ti t ul o( uno. get Ti t ul o( ) ) ;
set Aut or ( uno. get Aut or ( ) ) ;
set Codi go( uno. get Codi go( ) ) ;
set Edi t or i al ( uno. get Edi t or i al ( ) ) ;
set FechaDev( uno. get FechaDev( ) ) ;
set Di a( uno. get Di a( ) ) ;
set Mes( uno. get Mes( ) ) ;
27/08/2009 Pgina3

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


set Ani o( uno. get Ani o( ) ) ;
set Est ado( uno. get Est ado( ) ) ;
set Edi ci on( uno. get Edi ci on( ) ) ;
}// fin del constructor
}/ / f i n de l a cl ase Li br o
Recuerde que una clase tiene DATOS privados y tiene METODOS pblicos y/o privados quienes deben manipular los datos
de la clase. Los objetos acceden a los datos de la clase a travs de los mtodos pblicos.
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m


Tambin debe notar la presencia de dos constructores, uno sin parmetro y el otro con un parmetro que sirve para recibir un
objeto de la misma clase y conservar los datos del parmetro recibido.
En ste momento lo ms probable es que tenga marcado varias lneas con errores. Eso se debe a que falta generar los
mtodos get/set para todos los atributos.
Para generar los mtodos get/set haga clic derecho en la clase Libro, elija Refactor, Encapsulate Fields y marque los
checks de todos los atributos como aprecia en la siguiente ventana:

Hace clic en el botn Refactor y listo. Ahora la clase completa queda as:
public class Libro{
// datos privados de la clase
pr i vat e St r i ng Ti t ul o, Aut or , Codi go, Edi t or i al , FechaDev;
pr i vat e St r i ng di a, mes, ani o, Est ado;
pr i vat e i nt Edi ci on;

// constructor vaco
publ i c Li br o( ) { }/ / f i n del const r uct or vac o

// constructor que recibe un objeto Libro
publ i c Li br o( Li br o uno) {
27/08/2009 Pgina4

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

set Ti t ul o( uno. get Ti t ul o( ) ) ;


set Aut or ( uno. get Aut or ( ) ) ;
set Codi go( uno. get Codi go( ) ) ;
set Edi t or i al ( uno. get Edi t or i al ( ) ) ;
set FechaDev( uno. get FechaDev( ) ) ;
set Di a( uno. get Di a( ) ) ;
set Mes( uno. get Mes( ) ) ;
set Ani o( uno. get Ani o( ) ) ;
set Est ado( uno. get Est ado( ) ) ;
set Edi ci on( uno. get Edi ci on( ) ) ;
}/ / f i n del const r uct or
// mtodos get/set generados por NetBeans
publ i c St r i ng get Ti t ul o( ) {
r et ur n Ti t ul o;
}
publ i c voi d set Ti t ul o( St r i ng Ti t ul o) {
t hi s. Ti t ul o = Ti t ul o;
}
publ i c St r i ng get Aut or ( ) {
r et ur n Aut or ;
}
publ i c voi d set Aut or ( St r i ng Aut or ) {
t hi s. Aut or = Aut or ;
}
publ i c St r i ng get Codi go( ) {
r et ur n Codi go;
}
publ i c voi d set Codi go( St r i ng Codi go) {
t hi s. Codi go = Codi go;
}
publ i c St r i ng get Edi t or i al ( ) {
r et ur n Edi t or i al ;
}
publ i c voi d set Edi t or i al ( St r i ng Edi t or i al ) {
27/08/2009 Pgina5

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


t hi s. Edi t or i al = Edi t or i al ;
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

}
publ i c St r i ng get FechaDev( ) {
r et ur n FechaDev;
}
publ i c voi d set FechaDev( St r i ng FechaDev) {
t hi s. FechaDev = FechaDev;
}
publ i c St r i ng get Di a( ) {
r et ur n di a;
}
publ i c voi d set Di a( St r i ng di a) {
t hi s. di a = di a;
}
publ i c St r i ng get Mes( ) {
r et ur n mes;
}
publ i c voi d set Mes( St r i ng mes) {
t hi s. mes = mes;
}
publ i c St r i ng get Ani o( ) {
r et ur n ani o;
}
publ i c voi d set Ani o( St r i ng ani o) {
t hi s. ani o = ani o;
}
publ i c St r i ng get Est ado( ) {
r et ur n Est ado;
}
publ i c voi d set Est ado( St r i ng Est ado) {
t hi s. Est ado = Est ado;
}
publ i c i nt get Edi ci on( ) {
r et ur n Edi ci on;
27/08/2009 Pgina6

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


}
publ i c voi d set Edi ci on( i nt Edi ci on) {
t hi s. Edi ci on = Edi ci on;
}
}// Fin de la clase Libro
A continuacin la clase Libros que administra la informacin de todos los libros en un arreglo de objetos contenido en la clase
ArrayList. Clic derecho en el paquete problema03, nuevo Java Class de nombre Libros y escribimos el siguiente cdigo:
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

i mpor t j ava. ut i l . *; / / par a l a cl ase Ar r ayLi st


public class Libros {
pr i vat e ArrayList v;
/ / const r uct or
public Libros(){
v = new Ar r ayLi st ( ) ;
}
/ / met odos de admi ni st r aci n
/ / agr ega un nuevo Li br o
public void addLibro(Libro e){
v. add( e) ;
}
/ / obt i ene un Li br o de l a posi ci on dada
public Libro getLibro(int i){
r et ur n ( Li br o) v. get ( i ) ;
}
/ / r eempl aza un Li br o ya exi st ent e
public void setLibro(int i, Libro e){
v. set ( i , e) ;
}
/ / r et or na el numer o de Li br os guar dados en el Ar r ayLi st
public int numeroLibros(){
r et ur n v. si ze( ) ;
}
/ / busca un Li br o por su codi go
public int busca(String codigo){
f or ( i nt i =0; i <numer oLi br os( ) ; i ++)
27/08/2009 Pgina7

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


i f ( codi go. equal s( get Li br o( i ) . get Codi go( ) ) )
r et ur n i ; / / r et or na l a posi ci n encont r ada

r et ur n - 1; / / si gni f i ca que no l o encuent r a
}
/ / el i mi na un Li br o
public void elimina(int i){
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m
v. r emove( i ) ;
}
/ / el i mi na t odos l os obj et os del Ar r ayLi st
public void eliminaTodo(){
v. r emoveAl l ( v) ;
}
}// fin de la clase Libros




Ahora, vamos a disear el Panelngresos. Clic derecho en el paquete problema03, nuevo JPanel Form de nombre
PanelIngresos donde hacemos el siguiente diseo:
Desarrollo del Panel de Ingresos


Vamos al cdigo fuente (source) del PanelIngresos para declarar los atributos y llenar los tems del comboBox en el
constructor de la clase, as:
publ i c cl ass Panel I ngr esos ext ends j avax. swi ng. J Panel {
/ / obj et o de gest i n de t odos l os l i br os
static Libros libros = new Libros();

27/08/2009 Pgina8

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


/ / un obj et o par a acceder a l a i nf or maci n de un l i br o
Libro unLibro = new Libro();

/ ** Cr eat es new f or mPanel I ngr esos */
publ i c Panel I ngr esos( ) { / / const r uct or
i ni t Component s( ) ;
/ / l l ena l os i t ems del comboBox
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

for (int i=2000; i <=2050; i++)


cboEdicion.addItem(""+i);

}

El objeto de gestin de todos los libros tiene el modificador static porque ser utilizado desde varios paneles sin que pierda
su informacin.

Regresamos al diseo y hacemos doble clic en el botn Aceptar para programar su accin:
private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {
acept ar I ngr esos( ) ;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public void aceptarIngresos() {
i ngr esar Dat os( ) ;
i f ( dat osCor r ect os( ) ) {
i nt i =l i br os. busca( unLi br o. get Codi go( ) ) ;
i f ( i == - 1) {/ / codi go NO REPETI DO
al macenaDat os( ) ;
most r ar I ngr esos( ) ;
pr epar ar NuevoI ngr eso( ) ;
}
el se {
J Opt i onPane. showMessageDi al og( t hi s, " Cdi go Repet i do" ) ;
t xt Codi go. r equest Focus( ) ;
}
}
27/08/2009 Pgina9

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public void ingresarDatos() {
/ / cr eamos espaci o en memor i a par a un l i br o
unLi br o=new Li br o( ) ;

/ / i ngr esar dat os de un l i br o
unLi br o. set Codi go( l eer Codi go( ) ) ;
unLi br o. set Ti t ul o( l eer Ti t ul o( ) ) ;
unLi br o. set Aut or ( l eer Aut or ( ) ) ;
unLi br o. set Edi t or i al ( l eer Edi t or i al ( ) ) ;
unLi br o. set Edi ci on( I nt eger . par seI nt ( l eer Ani oDeEdi ci on( ) ) ) ;
unLi br o. set Est ado( " Li br e" ) ;
unLi br o. set FechaDev( " 00/ 00/ 00" ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public String leerCodigo() {
r et ur n t xt Codi go. get Text ( ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public String leerTitulo() {
r et ur n t xt Ti t ul o. get Text ( ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public String leerAutor() {
r et ur n t xt Aut or . get Text ( ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public String leerEditorial() {
r et ur n t xt Edi t or i al . get Text ( ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public String leerAnioDeEdicion() {
St r i ng Ani oEdi ci on;
27/08/2009 Pgina10

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


Ani oEdi ci on = cboEdi ci on. get Sel ect edI t em( ) . t oSt r i ng( ) ;
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

r et ur n Ani oEdi ci on;


}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public boolean datosCorrectos() {
St r i ng Val i dar Codi go;
i nt l ongi t udCodi ;

/ / l eer codi go
Val i dar Codi go = t xt Codi go. get Text ( ) ;

/ / obt ener l ongi t ud del codi go l ei do
l ongi t udCodi = Val i dar Codi go. l engt h( ) ;

/ / ver i f i car que t enga 5 car act er es
i f ( l ongi t udCodi < 5 | | l ongi t udCodi > 5) {
most ar Mensaj e( l ongi t udCodi ) ;
r et ur n f al se; / / dat os i ncor r ect os
}
el se
r et ur n t r ue; / / dat os cor r ect os
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public void mostarMensaje(int ContCodi) {
J Opt i onPane. showMessageDi al og( t hi s, " El Cdi go t i ene " +
Cont Codi +
" ci f r as y debe t ener 5 ci f r as"
) ;
t xt Codi go. r equest Focus( ) ;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public void almacenaDatos() {
/ / guar dar un l i br o en el vect or
l i br os. addLi br o( unLi br o) ;
27/08/2009 Pgina11

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])



/ / i mpr i mi r numer o de l i br os
most r ar Numer oDeRegi st r o( ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public void mostrarNumeroDeRegistro() {
t xt Regi st r o. set Text ( " " +l i br os. numer oLi br os( ) ) ;
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public void mostrarIngresos() {
bor r ar Ar ea( ) ;

/ / most r ar dat os i ngr esados de un l i br o
i mpr i me( " Nmer o de Regi st r o : " + l i br os. numer oLi br os( ) ) ;
i mpr i me( " Cdi go\ t : " + unLi br o. get Codi go( ) ) ;
i mpr i me( " Ti t ul o\ t : " + unLi br o. get Ti t ul o( ) ) ;
i mpr i me( " Aut or \ t : " + unLi br o. get Aut or ( ) ) ;
i mpr i me( " Edi t or i al \ t : " + unLi br o. get Edi t or i al ( ) ) ;
i mpr i me( " Ao de Edi ci n\ t : " + unLi br o. get Edi ci on( ) ) ;

//adicionar los cdigos ingresados a los combos respectivos
//para su posterior consulta
Panel Movi mi ent os. get ComboCodi gos( ) . addI t em( unLi br o. get Codi go( ) ) ;
Panel Di sponi bi l i dad. get ComboCodi gos( ) . addI t em( unLi br o. get Codi go( ) ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public void borrarArea() {
t xt Sal i da. set Text ( " " ) ;
}
/ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
public void imprime(String cadena) {
t xt Sal i da. append( cadena + " \ n" ) ;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
27/08/2009 Pgina12

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


public void prepararNuevoIngreso(){
t xt Codi go. set Text ( " " ) ;
t xt Ti t ul o. set Text ( " " ) ;
t xt Aut or . set Text ( " " ) ;
t xt Edi t or i al . set Text ( " " ) ;
cboEdi ci on. set Sel ect edI ndex( 0) ;
t xt Codi go. r equest Focus( ) ;
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

}
No le sorprenda que hasta ac le aparescan 2 lneas de error que corresponden a la llamada de los paneles
PanelMovimientos y PanelDisponibilidad porque stos paneles an no desarrollamos su diseo y cdigo. As que no se
preocupe y sigamos desarrollando el proyecto.
Regresamos al diseo y hacemos doble clic en el botn Cancelar para programar su accin:
private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {
pr epar ar NuevoI ngr eso( ) ;
}

Algunas variables son de mbito static para que puedan ser utilizadas desde otros paneles sin perder su contenido.

En el mtodo ingresarDatos() que se estn utilizando los mtodos de la clase propia para guardar los datos ledos, por
ejemplo en la siguiente orden:

unLi br o. setEdicion( I nt eger . par seI nt ( l eer Ani oDeEdi ci on( ) ) ) ;

Se lee el ao de edicin del libro a travs del mtodo leerAnioDeEdicion(), el cual es retornado como String, se le
convierte a entero cuyo valor es colocado en el dato del objeto unLibro a travs del mtodo setEdicion().

En el mtodo leerAnioDeEdicion() la siguiente orden:
Ani oEdi ci on = cboEdi ci on. get Sel ect edI t em( ) . toString( ) ;

Se obtiene el tem seleccionado como objeto cuyo valor se convierte en String a travs del mtodo toString(); siendo ste
valor retornado para su uso.

En el mtodo mostrarIngresos() que se muestran los datos ingresados utilizando los mtodos de la clase propia.

Al hacer clic en el botn cancelar, no se guardan los datos ingresados y se prepara un nuevo ingreso.




Desarrollo del Panel Principal

Ahora, vamos a disear el PanelPrincipal. Clic derecho en el paquete problema03, nuevo JPanel Form de nombre
PanelPrincipal donde hacemos el siguiente diseo:

PanelPrincipal con BorderLayout. En el centro colocamos un J TabbedPane que nos va permitir administrar un men de
opciones tipo fichas.

Vamos al cdigo fuente (source) del PanelPrincipal para escribir lo que est en negrita:

publ i c cl ass Panel Pr i nci pal ext ends j avax. swi ng. J Panel {
/ / decl ar ar obj et os de l a GUI
PanelIngresos panIng;
PanelMovimientos panMovi;
PanelDisponibilidad panDisp;
PanelListado panList;

27/08/2009 Pgina13

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


publ i c Panel Pr i nci pal ( ) {
i ni t Component s( ) ;
/ / Panel es def i ni dos en cl ases separ adas
panIng = new PanelIngresos();
panMovi = new PanelMovimientos();
panDisp = new PanelDisponibilidad();
panList = new PanelListado();

/ / enl aza cada pest aa con un panel a most r ar
jtpMenu.addTab("Ingresos",panIng);
jtpMenu.addTab("Movimientos",panMovi);
jtpMenu.addTab("Disponibilidad",panDisp);
jtpMenu.addTab("Listado",panList);

/ / est abl ece t ext o que apar ece al pasar el Mouse por cada
h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

/ / f i cha
jtpMenu.setToolTipTextAt(0,"Ingresa nuevo libro");
jtpMenu.setToolTipTextAt(1,"Cambia de estado:libre, sala, domicilio");
jtpMenu.setToolTipTextAt(2,"Muestra el estado actual del libro");
jtpMenu.setToolTipTextAt(3,"Muestra todos los libros");

/ / est abl ece col or de f ondo par a cada pest aa
jtpMenu.setBackgroundAt(0,new Color(149,199,199));
jtpMenu.setBackgroundAt(1,new Color(199,199,149));
jtpMenu.setBackgroundAt(2,new Color(199,149,199));
jtpMenu.setBackgroundAt(3,new Color(249,249,199));

/ / est abl ece un i cono par a cada pest aa
jtpMenu.setIconAt(0,
new ImageIcon(getClass().getResource("/images/bolita.gif")));
jtpMenu.setIconAt(1,
new ImageIcon(getClass().getResource("/images/estrei.gif")));
jtpMenu.setIconAt(2,
new ImageIcon(getClass().getResource("/images/estrei.gif")));
jtpMenu.setIconAt(3,
new ImageIcon(getClass().getResource("/images/bolita.gif")));
}

Si queremos que las fichas tenga alguna imagen, debemos crear la carpeta images dentro de la carpeta source (src) donde
colocaremos las imgenes correspondientes.

Para mayor detalle sobre la clase JTabbedPane puede revisar el captulo 3.

Podemos decir que el uso de las clases propias no slo permiten construir paneles independientes sino tambin permiten
definir objetos de dichas clases en cualquier panel.

En un panel se pueden declarar variables globales que sean utilizadas exclusivamente en dicho panel; sin embargo cuando se
tiene la necesidad de utilizar la misma variable sin perder su valor desde otros paneles; stas variables deben ser precedidas
por la palabra reservada static y desarrollar su mtodo de retorno correspondiente. Tan simple como eso.

Ahora creamos nuestro frame principal: clic derecho en el paquete problema03, elegimos nuevo JFrame Form de nombre
Principal, le ponemos un ttulo y le aplicamos distribucin BorderLayout. Luego vamos al cdigo fuente y escribimos lo que
est en negrita:

publ i c cl ass Pr i nci pal ext ends j avax. swi ng. J Fr ame {

publ i c Pr i nci pal ( ) {
i ni t Component s( ) ;
add(new PanelPrincipal());
setSize(500,300);
}

27/08/2009 Pgina14

Super JAVA SE for Windows with NetBeans IDE - Demo
Por: Julio Vsquez Paragulla ([email protected])


Ya puede ejecutar su aplicacin.

Las opciones de men pueden tener diversas presentaciones; una de ellas es en forma de fichas como la que hemos
presentado en ste ltimo ejercicio; otra es en forma de radioButtons; otra es en forma de botones; otra es en forma de men
en un Frame cuando una opcin a su vez tiene otras opciones. Esta ltima forma la veremos en el ejercicio del prximo
captulo.

El desarrollo completo del proyecto lo puede ver en el Libro y en el CD adjunto.



h
t
t
p
:
/
/
w
w
w
.
p
a
r
a
i
n
f
o
r
m
a
t
i
c
o
s
.
c
o
m

Gracias por leer nuestros Libros!


Para Informticos facilita tu aprendizaje!


27/08/2009 Pgina15

También podría gustarte