TECNOLGICA
INSTITUTO TECNOLGICO DE CD. VALLES
ING. EN SISTEMAS
COMPUTACIONALES
TOPICO AVANZADOS DE PROGRAMACION
EJERCICIOS EN NETBEANS
PROFESOR: MCI. NELLY ROSINA IZAGUIRRE CARDENAS
ALUMNOS:
SANCHEZ MANCILLA WALTER APOLO 09690037
VIDALES MARTINEZ ELVIA MARINA 11690174
VIDALES MARTINEZ ORLANDO - 10690344
01-12-2014
El mtodo isSelected() propio de las casillas de verificacin, permiten saber si una casilla
est activada o no.
Una vez ejecutado el programa nos mandara un mensaje indicando en la etiqueta que
animales han sido elegidos antes de dar click en el boton aceptar.
Los checkbox nos permiten elegir una o mas opciones entre varias existentes.
los botones de opcion se utilizan cuando se requiere que el usuario solo elija
una de la opciones entre varias.
Puede suceder que el usuario no seleccione ningn valor del cuadro de lista, y sera
interesante en este caso que el programa avisara de ello. Cambie el cdigo del botn
Aceptar por este otro cdigo:
String mensaje;
if (lstColores.getSelectedIndex()==-1) mensaje="No hay un color seleccionado.";
} else {
mensaje="El color seleccionado es: "+lstColores.getSelectedValue().toString();
}
etiResultado.setText(mensaje);
Los objetos Jlist permiten crear una lista con elementos seleccionables
Los cuadros combinados pueden funcionar tambin como cuadros de texto. Es decir,
pueden permitir que se escriba texto dentro de ellos. Para hacer esto, basta con cambiar
su propiedad editable y activarla.
Esta instruccin hace que al seleccionar un elemento del cuadro de lista ste aparezca en
la etiqueta etiResultado. Recuerda que el mtodo getSelectedValue permite recoger el
elemento seleccionado (hay que convertirlo a cadena con toString).
Un cuadro de lista es un objeto que contiene a su vez otro objeto llamado modelo
dicho objeto es que el realmente tiene los datos de la lista.
Se puede crear un modelo y luego introducir los datos en el.
Un cobinado contiene al igual que los cuadros de lista un objeto llamado modelo,se
puede hacer una asociacion de un modelo con el combo de esta manera se puede
cambiar mel contenido del combo en cualquier momento.
EJERCICIO 7 - TOGGLEBUTTONS
precio_base;
precio_instal; //precio instalacin
precio_for; //precio formacion
precio_ali; //precio alimentacion
Los Jtogglebutton son botones que pueden quedarse seleccionados, estos botones
no son muy usados ya que se sustituyen por los cuadros de verificacion que son
mas conocidos
EJERCICIO 8 - SLIDERS
a. Aade en l un JSLider.
b. Aade una etiqueta con borde. Su nombre ser etiValor.
c. El valor mnimo y mximo del JSlider se puede cambiar. Busca las propiedades
maximum y minimum del JSlider y asigna los siguientes valores:
Mximo: 500 Mnimo: 100
d. Se puede asignar un valor inicial al JSlider a travs de su propiedad value. Busque esta
propiedad y asigne un valor de 400. Observe donde se sita el recuadro del Jslider.
e. Se puede mejorar el JSlider definiendo unas divisiones (medidas) Por ejemplo,
haremos que cada 50 unidades aparezca una divisin. Para ello use la propiedad
majorTickSpacing y asigne un 50.
f. Esto, en realidad, no produce ningn cambio en el JSlider. Para que las divisiones se
vean, es necesario que active tambin la propiedad paintTicks. Esta propiedad pintar
divisiones en el Jslider.
g. An se puede mejorar la presentacin del JSlider, si hacemos que aparezca el valor de
cada divisin. Para ello debes activar la propiedad paintLabel.
h. Ahora se pretende que cuando el usuario arrastre el deslizador, en la etiqueta aparezca
el valor correspondiente. Para ello tendr que programar el evento stateChanged del
JSlider.
etiValor.setText("El valor es: "+slDeslizador.getValue());
Los slider son objetos deslizadores los cuales permiten elegir un valor arrastrando
un pequeo recuadro de derecha a izquierda o viceversa.
EJERCICIO 9 SPINNER
a. Aade en l un JSpinner. Su nombre ser spiValor
b. Aade una etiqueta con borde. Su nombre ser etiValor.
c. Interesa que cuando cambie el JSpinner aparezca el valor correspondiente
dentro de la etiqueta. Para ello, tendr que programar el evento stateChanged del
JSpinner.
d. En el evento stateChanged introduzca el siguiente cdigo:
etiValor.setText("El valor es: "+spiValor.getValue().toString());
e. Entra dentro del cdigo del programa y, dentro del constructor, aade este cdigo
debajo de initComponents:
SpinnerNumberModel nm = new SpinnerNumberModel();
nm.setMaximum(10);
nm.setMinimum(0);
spiValor.setModel(nm);
Los Jspinners son objetos que permiten escoger un numero ya sea escribiendolo
en el recuadro o bien con dos botones triangulares que permiten disminuir o
aumentar el valor actual.
El modelo del Jspinner permite definir el valor minimo y maximo asi como el
intervalo en el aumento de los valores.
.El valor maximo mostrado es 145 ya que el ancho del recuadro es de 5 entonces:
valor maximo de la barra-ancho del recuadro 150-5=145
Las JscrollBars son barras de desplazamiento independientes y tienen un valor
concreto el cual puede ser obtenido mediante el metodo getvalue.
g. Seguiremos aadiendo elementos al men. Ahora haga clic con el derecho sobre el
elemento menuArchivo y aada un Jseparator.
h. Aada un nuevo JMenuItem al men Archivo y ponle el nombre menuSalir. El texto de
esta opcin ser Salir (use su propiedad text).
i. un JMenu puede contener a otros JMenu, que a su vez contendrn varios JMenuItem.
Usando el botn derecho del ratn y la opcin Aadir, aade un JMenu dentro de
menuEdicion
j. Llama al nuevo JMenu menuColores y asignale el texto Colores.
Ahora aade dentro del menuColores tres JMenuItem llamados respectivamente:
menuItemRojo, menuItemVerde, menuItemAzul. Sus textos sern Rojo, Verde y Azul.
Las barras de menus son un conjunto de distintos tipos que se contienen unos a
los otros.
La barra contiene opciones principales representadas por objetos Jmenu
un Jmenu pueden contener otros Jmenu que a su vez pueden contener
JmenuItems.
Este evento recibe como parmetro un objeto llamado evt del tipo MouseEvent (en rojo en
el cdigo) que nos permite saber en qu condiciones se hizo clic.
c. Dentro del evento programe lo siguiente:
if (evt.getButton()==1) {
JOptionPane.showMessageDialog(null,"Pulso el izquierdo");
} else if (evt.getButton()==2) {
JOptionPane.showMessageDialog(null,"Pulso el central");
} else if (evt.getButton()==3) {
JOptionPane.showMessageDialog(null,"Pulso el derecho");
}
se usa el mtodo getButton del objeto evt para saber qu botn se puls. El mtodo
getButton devuelve un entero que puede ser 1, 2 o 3 segn el botn pulsado.
d. Agrega a tu formulario un objeto del tipo JPopupMenu. Estos objetos definen mens
emergentes.
e. Aada al men emergente tres JMenuItem, y asgneles los siguientes nombres a
cada uno: menuRojo, menuVerde, menuAzul.Asignars los siguientes textos: Rojo,
Verde y Azul.
f. El men emergente ya est construido. Ahora tenemos que hacer que aparezca cuando
el usuario pulse el botn derecho del ratn sobre el formulario. Para ello, entraremos de
nuevo en el evento mouseClicked del formulario y cambiaremos su cdigo por el
siguiente:
menuEmergente.show(this,evt.getX(),evt.getY());
g.Al hacer clic con el derecho se mostrar el men contextual.Para hacer que al pulsarse
una opcin suceda algo, solo hay que activar el mtodo actionPerformed del JMenuItem
correspondiente. Por ejemplo, active el actionPerformed del menuRojo y dentro programe
lo siguiente:
this.getContentPane().setBackground(Color.RED);
los menus contextuales son objetos del tipo Jpopmenu, para hacer que aparezca
hay que programar el evento mouseclicked en el objeto donde se quiere que
aparezca
EJERCICIO 14 FILECHOOSER
Aade en el proyecto los siguientes elementos:
a. Una barra de mens. Llmala barraMenus.
b. Dentro de ella una opcin Archivo llamada menuArchivo.
c. Dentro de la opcin Archivo, introduce los siguientes elementos:
- Una opcin Abrir, llamada menuAbrir.
- Un separador (llmalo como quieras)
- Una opcin Salir, llamada menuSalir.
d. Para que al pulsar la opcin Abrir de nuestro programa aparezca el dilogo de
apertura de ficheros, es necesario aadir a nuestro programa un objeto del tipo
JFileChooser.
e. Una vez hecho esto, ya podemos programar la opcin Abrir del men. Activa el evento
actionPerformed de la opcin Abrir y programa dentro de l lo siguiente:
int resp;
resp=elegirFichero.showOpenDialog(this);
if (resp==JFileChooser.APPROVE_OPTION)
{
JOptionPane.showMessageDialog(null,elegirFichero.getSelectedFile(
).toString());
} else if (resp==JFileChooser.CANCEL_OPTION) {
JOptionPane.showMessageDialog(null,"Se puls la opcin Cancelar");
}
Ejecuta el cdigo y prueba la opcin Abrir del men. Prueba a elegir algn fichero y
abrirlo. Prueba a cancelar la ventana de apertura. Etc
Los JScrollPane no solo estn diseados para contener imgenes. Pueden contener
cualquier otro elemento. Vamos a ver, con otro proyecto de ejemplo, otro uso de los
JscrollPane.
a. Aade a la ventana una etiqueta con el texto Ejemplo 2 de JScrollPane y un
JScrollPane de forma que est asociado a los lmites de la ventana.
b. Ahora aade dentro del JScrollPane un panel normal (JPanel). En la ventana no
notars ninguna diferencia,checar el inspector.
Como ves, el JScrollPane contiene a un objeto Jpanel.
Aprovechemos para cambiar el nombre a ambos objetos. Al JScrollPane lo llamaremos
scpDatos y al JPanel lo llamaremos panelDatos.
c. En la pantalla aparecer nicamente el JPanel, para que puede ser diseado aparte de
la ventana completa.
Para distinguirlo de lo que es en s la ventana, haremos las siguientes cosas con el panel:
Cambia el color de fondo y asgnale un color verde.
Aade en l una etiqueta con el texto Panel de Datos.
Aade varias etiquetas y cuadros de textos correspondientes a los das de la semana.
Agranda el panel.
d. Ahora que ya tenemos declarada e inicializada la variable global coches, esta puede
ser usada sin problemas desde cualquier evento que programemos.
Por ejemplo, empezaremos programando la pulsacin del botn Entr un coche. Acceda
a su evento actionPerformed y programe esto:
coches=coches+1;
etiCoches.setText(+coches);
f. Finalmente se programar el botn Reiniciar. Este botn, al ser pulsado, debe colocar la
propiedad coches a cero. Programa dentro de su actionPerformed lo siguiente:
coches=0;
etiCoches.setText(0);
Las variables globales son variables que se pueden usar desde cualquier evento del
programa, estas variables se mantienen hasta que otro evento las modifique, el
inicio de estas se realizan con el constructor.
EJERCICIO 18 LAYOUTS
En este caso el ejercicio 18 trata de layouts o distribuciones esto quiere decir que se
pueden utilizar varias opciones de diseo a continuacin se les menciona los siguientes:
1.-Diseo Libre Esta distribucin viene activada por defecto en el NetBeans, y define
una distribucin de componentes en la que se respetan las distancias entre ellos cuando
la ventana cambia de tamao.
2.-AbsoluteLayout En esta distribucin el programador puede colocar cada elemento en
la posicin que desee de la ventana. Los distintos elementos mantienen su posicin
aunque la ventana cambie de tamao, lo que puede hacer que si la ventana se reduce de
tamao algunos elementos no se vean.
3.-FlowLayout En esta distribucin los elementos se colocan uno detrs de otro. Los
elementos intentarn estar dentro de la ventana aunque esta se reduzca de tamao.
4.-GridLayout Esta distribucin coloca a los elementos en filas y columnas. Los
elementos siempre estarn dentro de la ventana aunque esta se reduzca de tamao.
5.-BorderLayout Esta distribucin coloca a los elementos en zonas. Los elementos
siempre estarn dentro de la ventana aunque esta se reduzca de tamao.
Aqu se les explico los tipos de distribuciones que existe para netbeans, el que utilizaremo
en este caso en este ejercicio ser la distribucin BorderLayout para esto crearemos un
proyecto nuevo colocaremos cinco botones la ventana tendr el siguiente aspecto:
Aqu esta opcin ordena los elementos como se muestra en la imagen de aariba
ejecutamos el programa y comprobamos su funcin cabe sealar que si se ase chica la
ventana los elementos se acopla a esta al igual que si se restaura la ventana realiza lo
mismo otra de las cosas que hay que notar que sus elementos nunca salen de la ventana.
EJERCICO 19 LAYOUTS Y PANELES
En este ejercicio se pretende entender y comprender como se puede colocar
distribuciones dentro de paneles para esto realizaremos la siguiente practica y
comenzaremos:
1. Crea un nuevo proyecto en java.
Se pretende crear un proyecto con una ventana de diseo complejo. Para ello sigue los
siguiente pasos:
Se agregaran 5 paneles cada uno de estos se le colocaran dentro sus respectivos
elementos esta ser nuestro objetivo darnos cuenta de que se puede color varios paneles
con distintos layouts, para darnos cuenta de esto le podr ver en el inspector de nuestro
proyecto.
2. En primer lugar, asigna un BorderLayout al JFrame:
3. El BorderLayout divide la ventana principal en zonas. Ahora aade un panel
(JPanel) a la zona norte de la ventana. A este panel se le llamara panelTitulo.
Este caso podemos observar de todo lo que se le colocara a nuestro proyecto con sus
respectibvos panel y sus nombre para cada uno de ellos es complejo y muy extenso pero
aqu se resumio de tal forma que sea compresible.
Para comprabar el programa ejecutamos y nos podemos dar cuenta de como quedo
ordenado en este caso se agrego 5 paneles con sus elementos y vemos como quedo :
EJERCICIO 20 DILOGOS
Crea un nuevo proyecto
Se diseara un JFrame el cual contedra los siguientes elementos:
- Cuadro de texto de unidades: txtUnidades.
- Cuadro de texto de precio: txtPrecio.
Para entenderlo a un mas realizaremos el siguiente ejercicio sencillo donde explica como
se genera automticamente el cdigo si diseamos con los elementos de formulario:
Ejercicio guiado 1.
Crea un proyecto y aade en su ventana un botn (JButton), una etiqueta (JLabel) y un
cuadro de texto (JTextField).
El nombre del botn ser btnBoton, el de la etiqueta etiEtiqueta y el del cuadro de texto
txtCuadroTexto.
A continuacin asigna un texto a cada elemento. La ventana final podra tener un aspecto
como el que sigue:
Posteriotmente ejecutamos para ver simplemente y darnos cuenta del cdigo generado
automticamente:
EJERCICO 21 EJEMPLO 2
Ene ste ejercico se explicara como crear un programa sin utilzar la ventana de diseo esto
nos permitira el control total de los componetes :
Empesaremos con lo siguinte acontinuacion
1. Crear un nuevo proyecto con las siguientes caractersticas:
a. El nombre del proyecto ser OPERACIONES.
b. El nombre del paquete ser VENTANAS.
c. El nombre del formulario ser VENTANAPRINCIPAL.
para comenzar crearemos un mtodo el cual se llamara creacin ventana esto se ara
desde el cdigo en la parte del constructor despus se le asigina algunas caractersticas a
la ventana como por ejemplo el tamaano la posicin y el titulo esto se hara con la
palabra resevada this.
2. Ahora agrega este cdigo a tu mtodo CreacionVentana:
etiNum1.setText(Nmero 1: );
Hay que definir la posicin que tendr el objeto y el tamao. Para ello, se usar
el mtodo setBounds. Este mtodo recibe la posicin (x, y) del objeto y el
ancho y el alto. En el ejemplo, la etiqueta est situada en la posicin (10,10) de
la ventana y tiene un ancho de 100 y un alto de 20:
etiNum1.setBounds(10,10,100,20);
Finalmente, hay que colocar la etiqueta en el panel de contenidos de la
ventana. Para ello, se usa el mtodo add del panel de contenidos. Recuerda
que para obtener este panel se usa el mtodo getContentPane:
this.getContentPane().add(etiNum1);
4. Es buena idea que ejecutes el programa para ver el aspecto de la ventana ahora.
5. Hemos aadido una etiqueta. Ahora aadiremos la siguiente. Para ello, primero
tienes que declarar la etiqueta en la zona de las variables globales:
aqu an no se program los eventos de los botones sumar y resatr esto se ara en
la siguiente practica
Como le hemos hecho anteriormente vamos a programar desde el codigo del proyecto
1. Inserta una llamada dentro del constructor a un procedimiento CreacionVentana de
la siguiente forma:
2. La ventana va a contener dos etiquetas, que tendremos que declarar en la zona de
variables globales:
Componente.MetodoParaAadirOyente(new TipoOyente() {
public void evento1(TipoEvento evt) {
LlamadaAProcedimiento1(evt);
}
public void evento2(TipoEvento evt) {
LlamadaAProcedimiento2(evt);
}
...otros eventos...
});
Para poder programar un evento es necesario conocer lo siguiente:
- El componente sobre el que se programar.
- El tipo oyente o adaptador al que pertenece el evento.
- El mtodo usado para asignar el oyente al componente.
- El nombre del evento.
- El tipo de evento para el parmetro.
etiTexto.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent evt) {
etiTextoMouseEntered(evt);
}
public void mouseExited(MouseEvent evt) {
etiTextoMouseExited(evt);
}
public void mousePressed(MouseEvent evt) {
etiTextoMousePressed(evt);
}
public void mouseReleased(MouseEvent evt) {
etiTextoMouseReleased(evt);
}
public void mouseClicked(MouseEvent evt) {
etiTextoMouseClicked(evt);
}
});
});
Componente.MetodoParaAadirOyente(new NombreOyenteAdaptador() {
public void nombreEvento1(TipoDatoParametro evt) {
LlamadaAProcedimientoEvento1(evt);
}
public void nombreEvento2(TipoDatoParametro evt) {
LlamadaAProcedimientoEvento2(evt);
}
});
Se puede aprender mucho sobre los eventos asocindolos desde diseo y luego mirando
en el cdigo generado.
EJERCICIO 25 VECTORES
1. Crea un nuevo proyecto en java.
2. Empecemos definiendo desde cdigo las caractersticas de la ventana. Crearemos
el mtodo CreacionVentana, y lo llamaremos desde el constructor del proyecto:
100, 20);
2. En este cdigo puedes observar como se usa un vector de String que se crea
conteniendo 10 colores. Luego, ese vector se usa para asignar cada color al texto
de cada cuadro. Si ahora ejecutas el programa, vers que cada cuadro tiene su
texto correspondiente a un color.
JButton btnAceptar;
Y luego, dentro de CreacionVentana, aade el siguiente cdigo:
En este cdigo se puede observar cmo se usa un for para recorrer fcilmente el vector
de cuadros y averiguar cules de ellos est activado. Aumentamos un contador y lo
dems es sencillo.
Si este programa se hubiera hecho desde diseo, el cdigo para contar el nmero de
cuadros activados sera mucho ms engorroso. Pinsalo.
Ejecuta el programa. Selecciona varios cuadros y pulsa el botn Aceptar. Observa el
resultado:
Este cdigo asigna a cada botn un evento actionPerformed que hace una llamada
a un procedimiento al que se le ha llamado botonesActionPerformed. (Esta
llamada da error porque an no ha sido programado el procedimiento. Esto se
har a continuacin.)
Hay que tener en cuenta que cuando se pulse cualquiera de los botones, se
ejecutar el procedimiento botonesActionPerformed. Programa este procedimiento
(fuera de CreacionVentana, por supuesto) de la siguiente forma: