Professional Documents
Culture Documents
APELLIDOS:
NOMBRES:
PROFESOR:
HORARIO:
E-MAIL:
TELFONO:
PROMEDIO DE
EVALUACIN
EVALUACIN EVALUACIN EVALUACIONES Y PROMEDIO
DE
PRACTICA TEORICA TAREAS FINAL
ASISTENCIA
ACADEMICAS
OBSERVACION:
...................................................................................................................................................................... ...............
....................................................................................................................................................... ..............................
........................................................................................................................................ .............................................
......................................................................................................................... ............................................................
.......................................................................................................... ...........................................................................
........................................................................................... ..........................................................................................
............................................................................
FORMATO GENERAL:
TITULOS: CALIBRI TAMAO 14 LETRA COLOR AZUL OSCURO EN NEGRITA
SUBTITULOS: CALIBRI TAMAO 12 COLOR AZUL OSCURO EN NEGRITA
TEXTO: CALIBRI TAMAO 11 COLOR NEGRO
INTERLINEADO 1.5
JUSTIFICADO
SI USA NUMERACION QUE SEA DE ESTE TIPO 1.
SI USA VIETA QUE SEA DEL MODELO QUE SE ESTA USANDO EN ESTE TEXTO.
Para poder iniciar el curso de Java con Netbeans ; nuestros maestros han
realizado una serie de definiciones previas con la finalidad de que puedas
entender plenamente el desarrollo de cada secuencia; estimado alumnito de
CICA, debes practicar e investigar para concluir tu carrera satisfactoriamente
Qu es Java
Java es un lenguaje originalmente desarrollado por un grupo de ingenieros de Sun, utilizado por
Netscape posteriormente como base para Javascript. Si bien su uso se destaca en el Web, sirve para crear
todo tipo de aplicaciones (locales, intranet o internet).
Java es un lenguaje:
de objetos
independiente de la plataforma
Qu es un algoritmo?
Es un mtodo para resolver un problema mediante una secuencia de instrucciones, cada una de las
cuales especifica las operaciones que debe realizar la computadora.
Caractersticas de un algoritmo
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
El proceso de un algoritmo
La definicin de un algoritmo debe describir tres partes: Entrada, proceso y salida.
ENTRADA SALIDA
PROCESO
La informacin proporcionada al algoritmo constituye su entrada, el procedimiento para la
solucin del problema constituye su proceso y la informacin producida por el algoritmo
constituye su salida.
Ejemplo 02:
Leer el radio de una circunferencia. Calcular su rea y longitud.
Una vez escrito el algoritmo es necesario asegurarse de que ste realiza las tareas para las que ha sido
diseado, y que por lo tanto produce el resultado correcto y esperado.
Palabras reservadas
Palabras utilizadas por los algoritmos o lenguajes de programacin para representar sentencias,
rdenes, etc.
Ejemplos:
inicio.
Fin.
hacer.
sientonces-sino.
mientras.
desde.
Identificadores
Son nombres usados para identificar a los objetos y dems elementos de un programa: variables,
constantes, operadores, funciones, procedimientos, etc. Existen reglas para construir identificadores
vlidos y son los siguientes:
Variables
Una variable es un objeto a quien se le asigna un valor y cuyo valor puede cambiar durante el desarrollo
del algoritmo o ejecucin del programa. Si una variable est compuesto por dos palabras, stas
pueden ser juntas o unidos por el subrayado bajo, guin bajo o subguin _ .
Nota:
No se deben utilizar como nombres de variables (identificadores) palabras
reservadas del algoritmo o del lenguaje de programacin.
Los nombres de las variables elegidas deben ser significativos y tener relacin con el objeto que
representan, como pueden ser los casos siguientes:
A continuacin se muestra como ejemplos los nombres de variables no adecuados porque tienen
otro significado a lo expresado:
Constantes
Una constante toma o recibe un valor que no cambia durante el desarrollo del algoritmo o la
ejecucin del programa.
Instrucciones
Las instrucciones especifican las operaciones o acciones que deben ser realizadas o ejecutadas.
Expresiones
Son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de
funciones especiales, que cumplen determinadas reglas.
Ejemplos:
a+(b*3)/c
5 * a * b / ( c + d)
1. EXPRESIONES ARITMTICAS
Son anlogas a las frmulas matemticas. Las variables y constantes son numricas (real o entera) y las
operaciones son las aritmticas
Operadores Aritmtcos
Significado Operador Algebraico Operador Algortmico
Suma + +
Instructor: Mauico Flores, Roly
Developer of Windows and Web Applications
WebSite: www.SystemGroup.Esp.St 6 E-Mail:
Systemgroup.Peru@outlook.Com
Resta - -
Multiplicacin x *
Divisin real / /
Divisin entera / div
Exponenciacin -,**,^
Modulo (resto o mod
residuo)
A continuacin se mostrarn las equivalencias que debe conocer entre expresiones algebraicas y
expresiones aritmticas.
Ejemplos:
1. Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen diferentes
parntesis anidados (internos unos a otros), las expresiones ms internas se evalan primero.
2. Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad.
Nota:
En caso coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrada entre
parntesis, el orden de prioridad en este caso es de izquierda a derecha.
a) 15 + 9 * 2 6 * 2 ^ 2
b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5)
Solucin:
a)15 + 9 * 2 6 * 2 ^ 2 b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5)
15 + 9 * 2 6 * 4 -8 / 4 * 6 + 3 ^ 2 * 2
-2 * 6 + 18 = 6
Divisin entera (div)
Es la accin de dividir dos nmeros enteros uno viene hacer el dividendo y el otro el divisor, el resultado
del operador div es el valor del cociente. En esta divisin no es de mucha importancia el residuo.
Recuerden que para utilizar el div solo se aplica a divisiones de nmeros enteros, veamos el siguiente
ejercicio.
Ejemplo: 9 div 2 = 4
Ejemplos:
a. 15 div 6 = 2 b. 14 div 2 = 7 c. 0 div 3 = 0
d. 7 div 9 = 0 e. 3 div 3 = 1 f. 2 div 5 = 0
2. EXPRESIONES LGICAS
Una expresin lgica es una expresin que solo puede tomar dos valores: verdad y falso. Las
expresiones lgicas se forman combinando constantes lgicas, variables lgicas y otras
expresiones lgicas, utilizando los operadores relacionales (de relacin o comparacin) y los
operadores lgicos not, and y or.
Operadores de relacin
Permiten realizar comparaciones de valores de tipo numrico o carcter. Los operadores de relacin sirven
para expresar las condiciones en los algoritmos. El resultado de las operaciones de comparacin ser verdadero o
falso.
Operadores de Relacin
Significado Operador Operador Algortmico
Menor que > <
Mayor que < >
Igual que = =
Menor o igual que <
Mayor o igual que >
Distinto de o =
<
Diferente de >
Ejemplos:
Si P = 7 * 2 y Q = 3 ^ 2
Nota
Para tener completa seguridad en la ordenacin de los caracteres, ser preciso consultar el cdigo
de caracteres de su computadora, normalmente el ASCII (American Standar Code for Information
Interchange) o bien el EBCDIC (Extended Binary-Coded Decimal Interchange Code) utilizado en
computadoras IBM diferentes a los modelos PC y PS/2.
Operadores lgicos
Los operadores lgicos o volanos son not (no), and (y) y or(o). Las definiciones de las
operaciones no, y, o se resumen en unas tablas conocidas como las tablas de la verdad.
Operador Lgico Expresin Lgica Significado
no (not) no P negacin de P
y (and) PyQ conjuncin de P y Q
o (or) PoQ disyuncin de P o Q
Las tablas de la verdad son las siguientes:
Operador No Operador Y Operador O
P no P P Q PYQ P Q POQ
V F V V V V V V
F V V F F V F V
F V F F V V
F F F F F F
Nota:
Siendo P y Q expresiones booleanas, V valor verdadero, F valor falso.
Negacin = not
Disyuncin = and
Conjuncin = or
Ejemplos:
(7 < 12) y (9 < 21) verdad
(9 > 15) y (3 < 4) falso
(6 = 41) o (13 > 8) verdad
(16 > 8) o (2 > 5) verdad
no (18 > 6) falso
CARACTERSTICAS PRINCIPALES:
Suele dar soporte a casi todas las novedades en el lenguaje Java. Cualquier preview del lenguaje es
rpidamente soportada por Netbeans.
Asistentes para la creacin y configuracin de distintos proyectos, incluida la eleccin de algunos
frameworks.
Buen editor de cdigo, multilenguaje, con el habitual coloreado y sugerencias de cdigo, acceso a clases
pinchando en el cdigo, control de versiones, localizacin de ubicacin de la clase actual, comprobaciones
sintcticas y semnticas, plantillas de cdigo, coding tips, herramientas de refactorizacin, y un largo
etctera. Tambin hay tecnologas donde podemos usar el pulsar y arrastrar para incluir componentes en
nuestro cdigo.
Acceso a base de datos: desde el propio Netbeans podemos conectarnos a distintos sistemas gestores de
bases de datos, como pueden ser Oracle, MySql y dems, y ver las tablas, realizar consultas y
modificaciones, y todo ello integrado en el propio IDE.
Se integra con diversos servidores de aplicaciones, de tal manera que podemos gestionarlos desde el
propio IDE: inicio, parada, arranque en modo debug, despliegues. Entre otros podemos usar Apache
Tomcat, GlassFish, JBoss, WebLogic, Sailfin, Sun Java System Applicaton Server,
Es fcilmente extensible a travs de plugins.
EJERCICIOS DE AUTOEVALUACIN:
1. Qu es JAVA?
2. Qu es Netbeans?
4. Qu significa JVM?
Instructor: Mauico Flores, Roly
Developer of Windows and Web Applications
WebSite: www.SystemGroup.Esp.St 18 E-Mail:
Systemgroup.Peru@outlook.Com
5. Qu es el JDK?
Puedes revisar esta informacin adicional o los enlaces de la plataforma del docente:
Es importante saber documentar nuestros programas para hacerlos ms accesibles a quien desee entender nuestro
cdigo, esto se logra mediante los comentarios. Los comentarios son lneas que no van a ser interpretadas por Java.
Comentario de una sola lnea:
/* Esto es un
comentario de
varias lneas */
Palabras reservadas
Palabras reservadas por el programa Java y que no deben ser utilizados como identificadores por el programador.
Las palabras reservadas en java son:
Variables
Las variables o identificadores son los contenedores de los datos que utiliza un programa. Cada variable se declara
para separar un espacio en la memoria RAM del ordenador y que almacenara un dato. El identificador es el nombre
precisamente de la variable, por ejemplo:
miVariable contador1
contador contador_1
nombreVariable
Ejemplos de variables incorrectas son:
1variable Empieza con dgito
super Palabra reservada
mi Variable Espacio en blanco
Declaracin de variables
Antes de poder utilizar una variable, sta se debe declarar de la siguiente forma
Tipo nombreVariable;
Donde tpo, es el tipo de datos que almacenar la variable (texto, nmeros enteros, valores lgicos) y
nombreVariable es el nombre con el que se conocer. Ejemplo:
int nota;
boolean decision;
Tambin se puede hacer que la variable tome un valor inicial al declarar:
int dias=365;
Y tambin se puede declarar ms de una variable a la vez:
int dias=365, nota=20, edad=18;
Operadores
Para manipular los datos debemos utilizar operadores, asi podemos realizar operaciones bsicas como suma
y resta y tambin operaciones ms complejas.
Operadores aritmticos
Son:
Operador Significado Ejemplo Resultado
+ Suma 8+5 13
- Resta 8-5 3
* Producto 8*5 40
/ Divisin 8/5 1
% Mdulo o Residuo 8%5 3
++ Incremento en 1 i++ i+1
-- Decremento en 1 i- - i1
+= Suma al contenido i+=2 i=i+2
-= Resta al contenido i =2 i=i2
*= Multiplica al contenido j *= 3 j = j*3
/= Divide al contenido k /= 4 k= k/4
Operadores condicionales
Manual Terico
De Java Netbeans
Son aquellos que sirven para comparar valores y siempre devuelven valores booleanos (true o false). Son:
if (condicin){
Acciones
}
else{
Acciones alternas
}
if (condicin)
{Acciones;}
else if (condicin)
{Acciones;}
else if (condicin)
{Acciones;}
else if (condicin)
{Acciones;}
else
{Acciones;}
switch (ciclo){
case 1:
Acciones;
Break;
case 2:
Acciones;
Break;
case 3:
Acciones;
Break;
default:
Acciones;
Break;
}
while (condicin){
Instrucciones que se ejecutan si la
condicin es verdadera;
}
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Con el programa en pantalla vamos al men principal y seleccionamos File > New Project.
Tendremos una ventana como en la siguiente figura dnde seleccionamos el tipo de proyecto: Java > Java
Applicaton y damos clic en el botn Next.
Categories: Java
Projects: Java Applicaton
5
Manual Terico
De Java Netbeans
En este paso vamos a escribir el nombre del proyecto que por convencin Java, las primeras
letras de las palabras que contenga sern en maysculas: ProyectoPrueba.
Project Name: ProyectoPrueba
Tambin deseleccionamos las casillas: Create Main Class y Set as Main Proyect.
Damos clic en el botn Finish.
5
Manual Terico
De Java Netbeans
Definimos el nombre del paquete, de misma forma que con los proyectos, por convencin Java,
el nombre de los paquetes debe estar totalmente en minsculas: proyectoprueba.
Package Name: proyectoprueba
Creamos(agregamos) una clase a nuestro proyecto dando clic derecho sobre el paquete del paso
anterior: New > Java Class.
5
Manual Terico
De Java Netbeans
Definimos el nombre de nuestra clase, que por convencin Java, las letras iniciales de cada
palabra que contenga el nombre estarn en maysculas y sin espacios.
Class Name: Main.
Ahora vamos a agregar o aadir codigo a nuestra clase para que tenga algn comportamiento en
su ejecucin.
Mtodo main()
1 public static void main(String[] args) {
2 System.out.println("Proyecto en NetBeans terminado(:");
3 }
5
Manual Terico
De Java Netbeans
Esperamos que se termine la ejecucin y veremos el resultado que nos ha mostrado nuestra
clase. En este caso slo imprimimos un mensaje por consola.
5
Manual Terico
De Java Netbeans
Una vez que hayamos descargado el paquete debemos correr el instalador. Despus de aceptar la licencia
nos pregunta dnde queremos instalar y al final instala todos los componentes necesarios. Una vez
terminado de instalar debemos buscar el cono de NetBeans en el escritorio o en el men inicio.
Corremos el programa haciendo doble click y nos lleva a la pantalla principal que es similar a esta:
El editor grfico de ventanas en NetBeans es parte de un proyecto llamado Matisse. Desde que sali
NetBeans 5.5 han habido varias mejoras importantes que hacen que sea mucho ms fcil de utilizar y
estas mejoras van a ser implementadas en la versin 6.0 de NetBeans. Si ests utilizando una versin
anterior a la 6.0 puedes seguir los siguientes pasos para instalarlo:
1. Descarga el archivo con los mdulos de matisse y extraelos en alguna carpeta.
2. Abre NetBeans
3. Selecciona el men Tools -> Update Center
4. Selecciona Install Manually Downloaded Modules
5
Manual Terico
De Java Netbeans
En la ventana de seleccionar mdulos presiona el botn Add y selecciona los mdulos que se encontraban
dentro del archivo que descargaste en el primer paso.
5. Acepta el contrato de licencia y reinicia el IDE. Un IDE es una herramienta que nos permite escribir
cdigo y compilar, en este caso se refiere a NetBeans.
5
Manual Terico
De Java Netbeans
Paso 3:
Ahora vamos a continuar con la creacin del proyecto en s. En esta pantalla podemos encontrar todas las
herramientas necesarias para crear y manejar nuestros proyectos hechos en Java. Por el momento
presiona el botn de nuevo proyecto. En la ventana que aparece selecciona un nuevo proyecto de Java.
En la segunda ventana ponle como nombre de proyecto HelloWorld. Es importante que en esta ventana
revises el directorio en el que se guarda el proyecto para que ms adelante puedas acceder a tus archivos
o puedas agregar imgenes y sonidos.
Al terminar aparecer la ventana de cdigo en la que podemos comenzar a codificar nuestra aplicacin.
5
Manual Terico
De Java Netbeans
Esto es lo que se llama una Clase en Java(esta clase en particular se llama Main, eso es un dato importante
porque lo vamos a utilizar ms adelante). Las clases son el fundamento de la programacin orientada a
objetos y podramos decir que son el molde con el que hacemos nuevos objetos. Las clases tienen
atributos y mtodos. Los atributos son lo que nos dice cmo es esa clase, por ejemplo, los atributos de
una persona son el color de ojos y el alto(entre muchos otros), los mtodos son las acciones que puede
realizar una clase, por ejemplo correr.
En el cdigo que se genera automticamente por NetBeans tenemos dos mtodos, el mtodo Main() que
tambin se conoce como el constructor de la clase y el mtodo main() que es el punto de inicio del
programa(por las maysculas y minsculas Main es diferente de main).
Paso 4:
Dentro del mtodo main() escribe el siguiente cdigo:
Una vez que lo hayas escrito presiona el botn de compilar (o F11). En la ventana de compilacin
deben aparecerte varios mensajes de compilacin y debe terminar en BUILD SUCCESSFUL(total time: 7
seconds). Esto quiere decir que nuestra aplicacin compil de manera adecuada y estamos listos para
correrla. Presiona el botn correr (o presiona F6). En la parte inferior de la pantalla debe aparecer el
letrero "Hola!".
5
Manual Terico
De Java Netbeans
Felicidades! Has creado tu primera aplicacin Java con NetBeans, pero esto no es lo que queremos que
vea un cliente final. Para que un programa sea til para cualquier persona es necesario que tenga una
interfaz grfica as que vamos a utilizar Swing para crear una interfaz grfica que nos muestre el mismo
mensaje.
Swing es un conjunto de libreras con las que cuenta Java para crear y mostrar una interfaz grfica. Dentro
de estas libreras hay varias clases(recuerda, una clase es como un molde con el que podemos hacer
objetos) que nos permiten mostrar ventanas, mensajes, botnes, cajas de texto e incluso imgenes, audio
o video. Una de las clases ms importantes de Swing es JFrame. Esta clase es una ventana que tiene un
contenedor en el que podemos poner controles.
Como podemos ver en la imagen un JFrame es una ventana normal de Windows. Dentro de un JFrame
existe algo llamado ContentPane. Un ContentPane es un contenedor de controles en el que podemos
agregar los elementos de la interfaz grfica. Ahora veamos otro control importante en la generacin de
interfaces grficas. El JLabel es una etiqueta con la que podemos motrar texto en nuestras aplicaciones.
Un JLabel es una herramienta muy poderosa ya que nos permite agregar texto, cambiar el formato, la
posicin, agregar imgenes y muchas cosas ms. Vamos a crear una clase que sea un JFrame y despus
vamos a agregarle un JLabel para mostrar nuestro mensaje.
Paso 5:
Vuelve al cdigo de la clase Main. Como dijimos tenemos que convertir esta clase en un JFrame. Esto es
sencillo, lo nico que debemos hacer es agregar la lnea extends JFrame en la parte de arriba despus de
dnde dice public class Main como se ve en la imgen.
Es importante notar que dejar un rengln entre el nombre de la clase y el extends no es necesario,
nicamente es para darle una mejor presentacin al cdigo, pero ustedes pueden seguir cualquier estilo
que ustedes consideren ms claro. Despus de escribir esta lnea NetBeans la va a subrayar con una lnea
5
Manual Terico
De Java Netbeans
roja, esto significa que el cdigo tiene un error. Poniendo el mouse sobre el error podemos obtener ms
informacin sobre l.
Paso 6:
El error que nos marca NetBeans es que no conoce el smbolo. Esto quiere decir que no sabe qu es un
JFrame, para resolver este tipo de errores debemos agregar la librera de la que hablaba hace unos
momentos, en estos momentos todava no sabemos dnde est, pero por suerte NetBeans tambin nos
muestra un foquito a la izquierda en el que, al hacer click, nos brinda una solucin. No siempre podemos
confiar en las soluciones que brinda NetBeans porque despus de todo es una herramienta y no una
persona que nos est haciendo la recomendacin, pero muchas veces su sugerencia es acertada, como en
este caso que dice que debe agregar un import(veremos ms sobre este tema ms adelante). Selecciona la
opcin y debe aparecer una lnea al principio de nuestra clase en la que resuelve el error.
Paso 7:
Como vimos en la parte de arriba el mtodo Main(con mayscula) es el constructor de la clase. Este es el
mtodo con el que vamos a crear nuevos objetos de nuestra clase(que es una ventana). Dentro de este
mtodo debemos escribir algunas lneas de cdigo para darle un tamao a la ventana y para que se
muestre. Copia el cdigo que se muestra en la siguiente imgen:
En el cdigo estamos utilizando la palabra clave this, que hace referencia a la misma clase que lo llama, es
decir, a nuestra ventana. La primera lnea va a cambiar el tamao de nuestra ventana a 200 x 200. Escribe
this.setS y espera unos momentos. Aparecer una pantalla que te muestra opcines de auto completar.
Esta pantalla es muy til al programar ya que cuando no conocemos un mtodo nos brinda informacin
sobre qu significan los parmetros y cmo utilizar el mtodo.
5
Manual Terico
De Java Netbeans
Por ejemplo, en esta imgen nos indica que el mtodo setSize() debe recibir dos nmeros enteros(int
quiere decir nmero entero), y nos dice que el mtodo va a cambiar el tamao del componente(en este
caso nuestra ventana) para que tenga el ancho y alto especificados. Tamben nos indica que podemos
conseguir ms informacin viendo los mtodos getSize(), setBounds() y setMinimumSize(). Utilizando esta
herramienta completa el cdigo para mostrar la ventana.
La segunda lnea nos permite cambiar el ttulo de nuestra aplicacin. Podemos utilizar cualquier ttulo que
nos guste, lo nico importante es pasarlo entre comillas porque es texto. La tercera lnea le dice a nuestra
aplicacin qu debe hacer cuando el programa termine. En este caso nuestro constructor es nicamente
una ventana, por lo que le indicamos que al cerrar la ventana la aplicacin termine con EXIT_ON_CLOSE.
La cuarta lnea le indica a la ventana que es visible, por lo tanto se dibuja en pantalla.
5
Manual Terico
De Java Netbeans
Paso 8:
Por ltimo debemos crear un nuevo objeto de nuestra ventana, esto es muy sencillo y lo
logramos agregando la lnea que se ve en la imgen dentro del mtodo main()(con
minscula).
Esta lnea est creando un nuevo objeto de la clase Main mandando llamar el constructor
que acabamos de crear. Compila tu programa haciendo click en el botn compilar y
luego crrelo haciendo click en el botn correr .
Con esto se muestra una ventana vaca, ya casi hacemos el programa que queramos, pero
nos falta un mensaje. Para eso vamos a utilizar otra clase de Swing que se llama JLabel.
En la parte superior del constructor escribe el cdigo como se ve en la imagen:
Una vez ms la primera lnea va a ser subrayada en rojo porque nos falta importar una
librera. Ahora vamos a utilizar otra tcnica para resolver este mismo error. Haz click
derecho sobre el cdigo y selecciona la opcin "Fix Imports". Con esto NetBeans
revisar todo el cdigo y automaticametne va a agregar todas las librearas que
necesitamos.
En el cdigo lo que estamos haciendo es crear un nuevo JLabel. Su nombre ser
lblHola(por convencin todos los JLabel deben empezar su nombre con lbl) y este JLabel
va a ser un nuevo JLabel que diga "Hola". Despus agregamos el JLabel al contenedor de
la ventana.
Felicidaes, hemos terminado nuestra primera aplicacin en NetBeans utilizando interfaz
grfica!
5
Manual Terico
De Java Netbeans
public conx() {
initComponents();
}
stm.close();
con.close();
}catch(ClassNotFoundException ex) {
System.out.println(ex);
System.out.println("error en la linea Entrada");
}
5
Manual Terico
De Java Netbeans
}
Como se puede observar un String para el nombre del servidor, otro para la base de datos,
un entero para el nmero del puerto(que por default el 3306 siempre es de MySQL).
Este JFrame sirve como la base de algn programa, pues como lleva Strings Estticos no
hay necesidad de volverlo a crear solo de exportar, por ejemplo si alguno de ustedes
necesita que invocar en otro Frame el nombre del servidor lo nico que debes de hacer es
poner lo siguiente:
String url = "jdbc:mysql://" + conx.Exe5 + ":" + port + "/" + dataBase;
Fuente: http://www.taringa.net/posts/info/6407848.R/Conexion-a-una-base-de-datos-en-
MySQL-con-Java.html
5
Manual Terico
De Java Netbeans
TaT CambiarIconoJFrame
Cmo cambiar el cono de un JFrame en cinco pasos.
Paso 1
El cono debe ser una imagen de extensin PNG. Esto se hace ms fcil, ya que conseguir
una figura y convertirlo en formato .ico es muy complicado. Los PNG nos ayudan
bastante.
Paso 2
La imagen que ser el cono debe estar dentro del paquete de fuentes, como si fuera una
clase ms. Si estuviera dentro de un paquete, sera mucho mejor.
Paso 3
En el cdigo del JFrame que vamos a poner el cono, sobreescribimos el mtodo
getIconImage() conteniendo el siguiente cdigo: (notar cmo se est llamando a la
imagen .png)
@Override
public Image getIconImage() {
Image retValue = Toolkit.getDefaultToolkit().
getImage(ClassLoader.getSystemResource("resources/icono.png"));
return retValue;
}
Paso 4
En la vista de diseo del JFrame, lo seleccionamos y vamos sus propiedades, buscamos la
propiedad "iconImagen" y hacemos clic en el botn de puntos suspensivos. Se mostrar
una ventana de dilogo como esta:
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Paso 5
Ejecutamos la aplicacin con el JFrame, y voila! nuestro JFrame con un cono diferente
Fuente: http://wiki.netbeans.org/TaT_CambiarIconoJFrame
5
Manual Terico
De Java Netbeans
JFrame y JDialog
Cundo usar JFrame y cundo JDialog
En una aplicacin java con ventanas debera haber un nico JFrame, correspondiente a
la ventana principal de la aplicacin. El resto de ventanas secundarias deberan ser
JDialog.
Un JFrame en una ventana que en Windows crea, en la barra de herramientas, donde est
el men de "inicio" y las aplicaciones que tenemos abiertas, un nuevo botn de aplicacin
abierta. En una aplcacin lo normal es que slo haya un botn ah. Si creamos varios
JFrame en nuestra aplicacin, apareceran varios botnes, uno por cada JFrame.
El JDialog no muestra este botn. Por ello, el resto de las ventanas de nuestra aplicacin
deberas ser JDialog.
Hay otro motivo ms. Un JFrame no admite a ninguna otra ventana como padre. El
JDialog s admite como padres un JFrame u otros JDialog. Esto es importante porque
una ventana hija siempre quedar por encima de su ventana padre. Si al crear los JDialog
les pasamos el JFrame como padre, los JDialog siempre estarn visibles por encima del
JFrame. No se podrn ir "detrs" de l.
Si adems, en el constructor del JDialog ponemos a true el flag que indica que es modal,
adems de pasarle una ventana padre, entonces el JDialog impedir el acceso a las otras
ventanas hasta que se cierre.
Puedes ver esto ms detallado (y embarullado) en:
http://www.chuidiang.com/java/novatos/JFrame_JDialog.php
Cambiar el icono de la taza de caf en JFrame y JDialog
Cambiar el icono de la taza de caf que aparece en los JFrame, arriba a la izquierda, es
fcil. Basta con llamar al mtodo setIconImage() del JFrame.
frame.setIconImage (new ImageIcon("fichero.gif").getImage());
Los JDialog no tienen este mtodo, pero heredan el icono de su ventana padre. Por ello,
basta con crearlos pasndoles como padre en el constructor un JFrame que tenga el
icono cambiado, o bien otro JDialog que a su vez se le haya cambiado el icono
JDialog dialog = new JDialog (frame);
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
5
Manual Terico
De Java Netbeans
public DosVentanas()
{
// Construccin de ventana principal
ventanaPrincipal = new JFrame("Ventana principal");
JButton botn = new JButton("Abre secundaria");
ventanaPrincipal.getContentPane().add(botn);
ventanaPrincipal.pack();
});
ventanaPrincipal.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE
);
ventanaPrincipal.setVisible(true);
}
5
Manual Terico
De Java Netbeans
// Se visualiza la ventana.
v.setVisible(true);
Si se pasa null como valor a este parmetro, entonces la ventana se centrara justo al
centro de la pantalla del PC...
// La ventana saldr centrada en pantalla.
v.setLocationRelativeTo (null);
Fuente: http://chuwiki.chuidiang.org/index.php?title=JFrame_y_JDialog
5
Manual Terico
De Java Netbeans
se abre el cuadro de dilogo New File y abrimos las carpetas Java GUI Forms y AWT
Forms. Entonces elegimos Frame Form y hacemos clic sobre el botn .
se abre el cuadro de dilogo New Frame Form. En el campo de texto Class Name:
introducimos el nombre de la Clase SelectorColoresMarc y finalmente hacemos clic
sobre el botn
5
Manual Terico
De Java Netbeans
Este Asistente (Wizard) nos ha creado una pestaa llamada SelectorColoresMarc, la cual
contiene dos botnes Design y Source.
Cuando el botn Design est activo entonces el IDE nos proporciona un entorno grfico
para disear nuestras aplicaciones visuales. Si hacemos clic sobre el marco que tenemos
en el rea de diseo podemos ver la ventana Properties que en el futuro nos ser muy til
para cambiar las diferentes propiedades de los componentes visuales Java.
Ahora vamos a hacer clic sobre el botn Source para ver el cdigo fuente Java generado
por el Asistente
5
Manual Terico
De Java Netbeans
NetBeans, al igual que otros entornos de desarrollo Java, no permite que el desarrollador
pueda modificar cdigo en algunos mtodos que estn relacionados con el entorno
grfico.
La causa de esta restriccin es debido a la sincronizacin que el entorno de desarrollo
tiene que realizar cuando pasa de Diseo a Cdigo fuente y viceversa.
Para evitar posibles errores en la escritura de cdigo relacionado con la parte visual,
NetBeans prefiere que el trabajo visual se realice directamente en este caso en el entorno
grfico en vez de codificarlo nososotros mismos.
NetBeans nos indica que no podemos modificar o aadir nuevo cdigo con un fondo de
color azul
pack();
5
Manual Terico
De Java Netbeans
}
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
Para que el Frame (marco, ventana) tenga dimensiones, vamos a modificar el cdigo perteneciente al
mtodo main(...)
package paqawt;
public class SelectorColoresMarc extends java.awt.Frame {
public SelectorColoresMarc() {
initComponents();
}
private void initComponents() {
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
pack();
}
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
5
Manual Terico
De Java Netbeans
Y ahora ya podemos ejecutar esta Clase para ver una ventana con dimensiones.
Fuente:
http://www.javadabbadoo.org/cursos/infosintesis.net/javase/paqawt/selectorcolores/paso0
1operativa.html
5
Manual Terico
De Java Netbeans
2.-Al dar en nueva conexn nos saldr la siguiente interfaz donde tendremos que colocar
la informacin de tu BD(en este caso MySql).
5
Manual Terico
De Java Netbeans
Adicionalmente decir que te piden el driver dependiendo de la conexion en este caso del
mysql conector.
3.-Al conectarte te saldr el icono con el nombre de tu BD, para ejecutar comandos slo
ponemos click derecho EJECUTAR COMANDO...
5
Manual Terico
De Java Netbeans
Como ven hay ms opcines que en las versiones anteriores como en el 5.5 slo teniamos
para ser sentencia entre otras cosas.Pero ahora tenemos para limpiar Tabla,actualizar
registros,insertar registros,entre otros.
Fuente: http://javaycafe.blogspot.com/2009/01/comandos-sql-desde-netbeans.html
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
catch(SQLException e) {
System.out.println(Se ha producido un error en la conexion a la base de datos Ejemplo!
);
}
}
Fuente: http://migue85.wordpress.com/2008/07/11/conectando-postgresql-con-netbeans-
java/
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Fuente: http://fragowb.wordpress.com/2008/05/01/conectar-java-con-mysql-en-netbeans/
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Donde:
El JTextBox: Recibe el nombre de txtQuery
El JTable: Recibe el nombre de jtQuery
El JButton: Recibe el nombre de btnConsultar
3.3. Crear base de datos en MySQL
Debemos de crear una base de datos en MySQL. A la base de la llamaremos
"bdproductos" y tambin crearemos una tabla que se llamara "producto"
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Fuente: http://www.programandoconcafe.com/2010/11/java-llenar-un-jtable-con-
resultset.html
5
Manual Terico
De Java Netbeans
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Fuente: http://lefunes.wordpress.com/2008/02/11/centrar-un-jframejdialog-en-pantalla/
frame.add(botn);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
5
Manual Terico
De Java Netbeans
Fuente: http://lefunes.wordpress.com/2008/02/11/centrar-un-jframejdialog-en-pantalla/
Asesoramiento en programa
Hice el acceso al programa mediante una contrasea(necesaria) con dos clases.
la q contiene el metodo main:
Cdigo:
public class aplicacion {
public static void main(String[] args) {
contrasea obj=new contrasea();
}
}
//ubicacion en el plano
eusuario.setBounds(10,10,100,30);
usuario.setBounds(90,10,190,30);
econtrasea.setBounds(10, 50, 100, 30);
5
Manual Terico
De Java Netbeans
contrasea.setBounds(90,50,190,30);
cerrar.setBounds(180, 100, 100, 30);
ingresar.setBounds(10, 100, 100, 30);
//ocultamos la contrasea rusticamente
if (user.equalsIgnoreCase("felipe")&&clave.equals("cbrfelipe")){
JOptionPane.showMessageDialog(null,"Bienvenido al sistema");//aprobacion
//abrir otro FRAME Programa
programa frame=new programa();// con este me muevo a la siguiente ventana... me costo caleta pillarlo
marco.setVisible(false);
}else JOptionPane.showMessageDialog(null,"reintentar");
}
});
});
}
Fuente: http://www.elcachondeo.cl/foro/f135/2031731-asesoramiento-en-programa/
5
Manual Terico
De Java Netbeans
WORD abiertos al mismo tiempo todos son independientes esos y no necesitan de otra
ventana para su existencias en JAVA estas ventanas principales se llaman FRAME y
cuando se las da un nombre se acostumbra a poner el nombre que lo identifica y con la
terminacin FRAME por ejemplo MAINFRAME es el FRAMA principal, o
NEWITEMFRAME u FRAME para crear un nuevo tem.
Los DIALOGOS son ventanas tambin al igual que las ventanas de tipo FRAME pero
con la diferencia que estos bloquean al formulario o ventana padre hasta que se cierre el
DIALOGO.
Bueno primeramente vamos a crear un FRAME principal y abrir otro FRAME a travs de
un botn en el FRAME principal.
Creamos un nuevo proyecto:
Ahora hacemos clic en FINISH, y ahora creamos nuestro primer JFRAME haciendo clic
derecho en el icono en forma de una taza de caf de nuestro proyecto que acabamos de
crear como en la siguiente imagen:
5
Manual Terico
De Java Netbeans
Luego hacemos clic en FINISH recuerda que nuestro primer FRAME se llama
NEWJFRAME como se muestra en la anterior imagen.
De la misma manera creamos otro FRAME llamado NEWJFRAME1:
Esto hemos hecho para que cada FRAME sea independiente a la hora de cerrar y o se
sierren todas cuando cerremos una.
Ahora agregamos un botn al otro NEWJFRAME al primero que creamos y abrimos su
cdigo de su evento con clic derecho como en la siguiente imagen:
5
Manual Terico
De Java Netbeans
Listo con eso cuando hagamos clic en el botn se abrir nuestro NEWJFRAME1, cuando
ejecutes el proyecto te pedir que elijas el FRAME principal le dices que sea
NEWJFRAME como en la siguiente imagen:
Ahora vamos a crear un DIALOGO que es el otro tipo de ventana que tiene el JAVA, de
la misma forma que hemos creado un FRAME se crea un DIALOGO, como en la
siguiente imagen:
5
Manual Terico
De Java Netbeans
Luego hacemos clic en FINISH, ahora para abrir este NEWJDIALOG por medio de
nuestro FRAME de la misma forma que hicimos anteriormente arrastramos un botn en
el NEWJFRAME y en su evento escribimos el siguiente cdigo:
Elige NEWJFRAME, y cuando ejecute veras las diferencias que existen entre una
ventana de tipo DIALOGO y una ventana de tipo FRAME, espero que te haya servido.
Fuente: http://www.mailxmail.com/como-usar-frames-dialogos-java-netbeans_h
5
Manual Terico
De Java Netbeans
Luego de hacer clic en NEXT te saldr otra ventana ponle un nombre a tu aplicacin en
nuestro caso ser APLICACIONCONFONDO y deja las dems opcines como en la
siguiente imagen:
Despus de hacer clic en FINSH se creara el siguiente paquete en la parte derecha como
en la siguiente imagen:
5
Manual Terico
De Java Netbeans
Ahora vamos a crear nuestro formulario principal, haciendo clic en FILE despus en
NEW FILE como en la siguiente imagen:
Ahora creamos otro formulario de tipo PANEL para que sea el fondo de nuestro
formulario principal. Y hacemos similar al anterior clic en FILE luego en NUEVO FILE:
5
Manual Terico
De Java Netbeans
Peo esta vez no escogemos JDIALOG FORM si no que JPANEL FORM de SWING GUI
FORM como se muestra en la siguiente imagen:
Luego hacemos clic en FINISH y se creara nuestro formulario y ahora listo vamos a
empezar a trabajar en la configuracin de nuestro Fondo, para eso nos ubicamos en
nuestro formulario Fondo no en el formulario principal si no en fondo como muestra en
la siguiente imagen:
5
Manual Terico
De Java Netbeans
Ahora nos vamos a las propiedades del JLabel1 que est en la parte derecha y borramos
su propiedad TEXT para que no se vea el ttulo JLABEL1 y hacemos clic en la propiedad
ICON en su botn buscar que est representado por un botn de tres puntos suspensivos
como se muestra en la figura:
Luego nos saldr una ventana done tenemos que elegir la imagen de fondo que queremos,
como en la siguiente imagen:
5
Manual Terico
De Java Netbeans
Luego clic en el botn OK, Y nos aparecer el formulario llamado Fondo con la imagen
de fondo que le escogimos ahora solo tenemos que importar este formulario Fondo a
nuestro formulario Principal y lo hacemos de la siguiente forma:
Hacemos clic en Principal para entrar en el formulario Principal luego en clic en
SOURCE para entrar en su cdigo:
5
Manual Terico
De Java Netbeans
Y escribimos las siguientes lneas de cdigo dentro de las llaves de amarillo que se
muestran en la imagen de arriba:
El cdigo debe quedar as:
Escoges Principal y listo ya tienes tu fondo pero solo se ver cuando se ejecute tu
proyecto, recuerda que tienes que trabajar pone ido tus botnes y todo lo dems en el
formulario Principal y n as en el formulario Fondo. Para cada formulario que quieres con
fondo tienes que crear otro formulario Fondo.
5
Manual Terico
De Java Netbeans
Bueno es muy largo porque en Java de esa forma se pone un fondo, en la prctica es
relativamente corto y sencillo.
Fuente: http://www.mailxmail.com/como-poner-fondo-formulario-java-netbeans_h
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Los JDialog son ideales para ventanas secundarias porque admiten una ventana padre. Si
la VentanaA es padre del JDialogB, entonces el JDialogB siempre estar por delante de
VentanaA, nunca quedar por detrs. Lo ideal es que hagamos nuestras ventanas
secundarias como JDialog cuyo padre sea el JFrame principal. De esta forma los
JDialog siempre sern visibles por encima del JFrame y no se irn detrs ni quedarn
ocultos por el JFrame.
Otra ventaja de admitir un padre es que heredan el icono de l. Si hemos cambiado el
icono del JFrame con el mtodo setIconImage(), entonces todos los JDialog que
hagamos como hijos de este JFrame heredarn el icono. Todas las ventanas de nuestra
aplicacin tendrn el mismo icono en lugar de la taza de caf por defecto.
Jerarqua de padres y ventanas modales
Un JDialog puede ser modal, pasndole un true en el constructor en el sitio adecuado o
hacindolo modal con el mtodo setModal(). Si hacemos un JDialog modal, todas las
dems ventanas se deshabilitarn hasta que el usuario de nuestro programa cierre el
JDialog. Esto est estupendo para pedir un dato al usuario y evitar que toque otras cosas
hasta que haya introducido el dato. Sin embargo, tiene un peligro.
Supongamos un JDialog que lo hacemos modal para pedir unos datos al usuario. Este
JDialog tiene un botn de "Aceptar" para que el usuario lo pulse cuando haya terminado
de introducir los datos. Supongamos que en el cdigo de ese botn "Aceptar"
comprobamos los datos que ha metido el usuario y vemos que son incorrectos. Le
sacamos un segundo JDialog modal para indicarle el error y no cerramos el primero.
Quin debe ser el padre de ese segundo JDialog modal?. Si hacemos que el padre sea el
JFrame tendremos dos JDialog modales hijos del JFrame, es decir, dos JDialog
modales hermanos. Esto nos dar problemas, como que ambas ventanas queden
deshabilitadas, que al cerrar una de ellas se nos oculten todas, que parte de la ventana
quede deshabilitada mientras que otra parte no, etc.
Entonces, cmo hacemos?. Para que java no haga cosas raras, el padre del segundo
JDialog modal debe ser el primer JDialog modal. De esta forma, el segundo tiene
"prioridad" sobre el primero. Todo queda deshabilitado excepto este segundo JDialog.
Cuando lo cerremos, ser el primero el que mande.
Resumiendo, si queremos varias ventanas modales simultneamente en pantalla, cada
ventana que se muestre debe ser padre de la siguiente, de forma que la cadena de
ventanas modales sean padre, hijo, nieto, etc. Tener dos ventanas modales simultaneas
que sean hermanas o primas o cualquier otra relacin que no sea directa, nos dar
problemas.
JOptionPane
Para hacer ventanas sencillas que avisen de un error al usuario y tengan un botn de
"Cerrar", o que le pidan una confirmacin para hacer algo (como borrar un fichero) y
tengan dos botnes de "Si" y "No", o para pedirle que elija una opcin entre varias
disponibles ... tenemos suerte. No hay que construir la ventana.
La clase JOptionPane de java tiene mtodos showConfirmDialog(),
showInputDialog(), showOptionDialog(), showMessageDialog(). Estos mtodos
mostarn una ventana modal que pide al usuario una confirmacin, que le pide un dato o
le muestra un mensaje. En caso de que el usuario tenga que elegir algo, el mtodo usado
devuelve el valor elegido.
Por ejemplo, para mostrar un aviso de error, nos basta esta simple lnea de cdigo
JOptionPane.showMessageDialog(ventanaPadre, "mensaje de error", "ttulo de la
ventana", JOptionPane.ERROR_MESSAGE);
Esto mostrar el mensaje de error y detendr la ejecucin del cdigo hasta que el usuario
cierre la ventana.
5
Manual Terico
De Java Netbeans
Ahora viene el dato importante. Esta ventana es modal y admite un padre. Si ya hay una
ventana modal visible en pantalla, deberas pasar esa ventana como padre de esta para no
tener problemas.
JInternalFrame
El JInternalFrame es una ventana especial que ni es ventana ni es nada. De hecho, no
hereda de Window. En realidad es un componente java que se dibuja dentro de otro
componente, pero adornado con la barra de ttulo de una ventana y sus botnes de
maximizar, minimizar y cerrar. Puede incluso arrastrarse y modificarse de tamao
siempre que se mete dentro del componente adecuado.
El sitio bueno para meter los JInternalFrame es el JDesktopPane. Este panel admite
JInternalFrame y sabe manejarlos.
JFrame ventana = new JFrame();
JDesktopPane desktop = new JDesktopPane();
ventana.getContentPane.add(desktop);
JInternalFrame internal = new JInternalFrame();
desktop.add(internal);
En este cdigo el JInternalFrame se comportar como una ventana, pero que no puede
salirse del JDesktop que la contiene.
Resumen
En nuestra aplicacin debe haber un JFrame y slo uno, que ser la ventana principal.
Todas las ventanas secundarias deben ser JDialog y todos los JDialog deberan tener padre.
Todos los JDialog modales visibles a la vez en pantalla, deben ser unos hijos de otros en una
cadena "padre-hijo-nieto" directa. No pueden ser "hermanos", ni "primos" ni "sobrinos".
Fuente: http://www.chuidiang.com/java/novatos/JFrame_JDialog.php
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
II.- MTODOS
ATRIBUTOS
static int EXIT_ON_CLOSE La salida por defecto al cerrar una ventana.
CONSTRUCTORES
JFrame() Crea un nuevo frame que es inicialmente visible
JFrame(String ttulo) Crea un nuevo frame con el ttulo indicado como
parmetro
MTODOS
Tipo de retorno Mtodo Descripcin
Container getContentPane() Retorna el objeto contentPane.
Retorna la operacin que ocurre cuando el usuario hace la operacin
int getDefaultCloseOperation()
de cerrar la ventana del frame
jMenuBar getJMenuBar() Retorna el menBar establecido en el frame
Remueve el componente indicado como parmetro de ste
Void remove(Component comp)
contenedor
setContentPane(Container
Void Establece la propiedad del contentPane
contentPane)
setDefaultCloseOperation(int Establece la operacin que suceder por defecto cuando el usuario
Void
operation) cierra la ventana
Void setJMenuBar(JMenuBar menu) Establece la barra de men para el frame
Por defecto, la distribucin de los paneles de ste componente no
Void setLayout(LayoutManager layout) debe cambiarse; en su lugar, debera ser cambiada la distribucin de
su contentPane que generalmente es un panel.
5
Manual Terico
De Java Netbeans
OBSERVACION: Todos estos mtodos se deben invocar en el constructor del JFrame; es decir:
public Principal()
{
panAcces = new panAcceso();
admin = new Administrador();
listadoAlu = new ListaAlumnos();
initComponents();
fecha = new Fecha();
//Maximizar la ventana del JFrame
this.setExtendedState(this.MAXIMIZED_BOTH);
//Evita que se cierrre el frame con el botn salir
esquivale a this.setDefaultCloseOperation(0);
this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
this.setTitle("SISTEMA INTEGRAL DE NOTAS - SIN");
lblFecha.setText("" + fecha.iniciarComponentes());
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClas
sName());
}
catch (Exception e)
{
e.printStackTrace();
}
}
IV.- EJEMPLOS
1. Disee una aplicacin con dos frames, uno de bienvenida y otro de despedida activados a travs
de botnes como se muestra a continuacin :
Fuente: http://javax0711.blogspot.com/2009/10/clase-jframe.html
5
Manual Terico
De Java Netbeans
/**
* @author Hernn
*/
public class LimitadorSoloLetras extends PlainDocument{
public void insertString(int arg0, String arg1, AttributeSet arg2)
throws adLocationException
{
for (int i=0;i<arg1.length();i++)
if (!Character.isLetter(arg1.charAt(i)) && !
Character.isSpaceChar(arg1.charAt(i)))
return;
super.insertString(arg0, arg1, arg2);
}
}
/**
* @author Hernn
*/
public class LimitadorSoloLetras extends PlainDocument{
5
Manual Terico
De Java Netbeans
/**
* @author Hernn
*/
public class LimitadorSoloLetrasNroMax extends PlainDocument{
/**
* @author Hernn
5
Manual Terico
De Java Netbeans
*/
public class LimitadorSoloLetrasNroMaxV2 extends PlainDocument{
Fuente: http://www.divideandconquer.com.ar/2008/10/limitar-caracteres-en-un-
jtextfield/
[...]
URL_bd = "jdbc:postgresql://192.168.0.252:5432/obras";
usuario = "user";
contrasinal = "password";
Class.forName("org.postgresql.Driver").newInstance();
Properties props = new Properties();
props.setProperty("user", usuario);
props.setProperty("password", contrasinal);
//2 opcines: que vienen siendo lo mismo
1. conexion = DriverManager.getConnection(URL_bd, props);
2. conexion = DriverManager.getConnection(URL_bd, usuario,
contrasinal);
Modo 2
public static java.sql.Connection conexion;
[...]
if (pool == null) {
pool = new Jdbc3PoolingDataSource();
5
Manual Terico
De Java Netbeans
pool.setPortNumber(5432);
pool.setUser("usuario");
pool.setPassword("password");
pool.setMaxConnections(100);
pool.setServerName("192.162.0.252");
pool.setDatabaseName("obras");
}
conexion = pool.getConnection();
pool.setLogWriter(new java.io.PrintWriter(System.out));
//Commit a true
conexion.setAutoCommit(true);
Fuente: http://www.forosdelweb.com/f45/maneras-conectar-netbeans-con-postgresql-
825340/
Fuente: http://nachxs.blogsome.com/2007/10/25/cambiando-el-icono-de-los-jframe/
5
Manual Terico
De Java Netbeans
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
public WindowDemo() {
super("Ventana personalizada");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Image icon = new
ImageIcon(getClass().getResource("/programa/imagenes/love.png")).get
Image();
setIconImage(icon);
setSize(350, 350);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new WindowDemo();
}
}
Como se puede ver tengo una clase en el paquete programa y tengo una imagen llamada love con extensin
.PNG en el paquete programa.imagenes.
En el cdigo que hemos visto prestemos atencin sobre:
Image icon = new
ImageIcon(getClass().getResource("/programa/imagenes/love.png")).getImage();
setIconImage(icon);
Al mtodo void setIconImage() hay que pasarle nuestra imagen como argumento, utilizamos new
ImageIcon(URL location).getImage() donde el argumento location lo obtenemos a travs del mtodo
getClass().getResource(String name) que nos devuelve un URL absoluto del recurso que especificamos
como String. Los tipos de archivo que podemos utilizar son GIF, JPEG yPNG (este ltimo desde J2SE 1.3)
pero no pueden ser ICO o BMP. En caso de utilizar un tipo de archivo no valido el icono predeterminado
simplemente no cambiara y seguiremos viendo la taza de caf, y en caso de que el archivo no se encontrase
el mtodo retornara null y la JVM nos arrojara una NullPointerException.
Tanto JDialogs como JInternalFrames que tengan este JFrame como padre llevaran el mismo icono.
Veamos como queda ahora nuestra ventana:
5
Manual Terico
De Java Netbeans
Y como alternativa al cdigo anterior tenemos otra forma muy similar de lograr el mismo
resultado:
Image icon =
Toolkit.getDefaultToolkit().getImage(getClass().getResource("/programa/imagenes/love.png"));
setIconImage(icon);
Desde un editor visual
Trabajando con editores visuales las cosas pueden ser diferentes, sin duda el caso mas
especial es el editor visual de NetBeans que veremos a continuacin.
NetBeans
En el caso que estemos trabajando con el editor visual de NetBeans (Matisse) no
podemos modificar manualmente el cdigo generado, as que seleccionamos el JFrame
en la pestaa Inspector y luego en la pestaa de propiedades (JFrame Properties)
buscamos la propiedad iconImage seleccionando donde se ve a continuacin:
Se nos abrir una ventana con nuevas opcines en la cual seleccionamos Custom Code
y como veremos tenemos un campo de texto donde podremos escribir nuestro cdigo
para aplicar el mtodo void setImageIcon(). Siguiendo con mi ejemplo donde tengo el
archivo de imagen love.png en el paquete programa.imagenes el cdigo a introducir sera:
new
ImageIcon(getClass().getResource("/programa/imagenes/love.png")).getIma
ge()
5
Manual Terico
De Java Netbeans
Fuente: http://darkbyteblog.wordpress.com/2011/01/14/java-awtswing-cambiar-el-icono-de-
una-ventana/
Pues bien, la siguiente clase a la que llame Numero_a_Letra.java realiza justamente esa operacion, esta
extracomentada y trate de hacerla lo mas entendible posible.
La logica que se utliza es la siguiente:
La clase recibe un numero ej. 123456789,50 valida este numero, si el numero no es valido devuelve NULL
Si el numero es valido segun sea este unidad, decena, centena, mil o millon, va clasificando el numero y
llama a sus procedimientos correspondientes, estas funciones, son utilizadas en cascada, osea: nuestro
numero de ejemplo es 123456789,50, entonces separa en 123456789 y 50, siendo 50 nuestra parte decimal.
El numero entero, 123456789 es clasificado = es millon, entonces llama a la funcion getMillones, esta
funcion a la vez divide el numero en miles y millones 123456789 = 123 456789 donde 123 corresponde a
millones y 456789 a miles entonces la misma funcion llama a las funciones getMiles, getCentenas,
getUnidades, segun corresponda, al igual que la funcion getMiles, hace uso de getCentenas, getDecenas
getUnidades, lo mismo getCentenas, hace uso de getDececas, getUnidades.
Espero se entienda :)
5
Manual Terico
De Java Netbeans
import java.util.regex.Pattern;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class Numero_a_Letra {
private final String[] UNIDADES = {"", "un ", "dos ", "tres ",
"cuatro ", "cinco ", "seis ", "siete ", "ocho ", "nueve "};
private final String[] DECENAS = {"diez ", "once ", "doce ", "trece
", "catorce ", "quince ", "dieciseis ",
"diecisiete ", "dieciocho ", "diecinueve", "veinte ", "treinta ",
"cuarenta ",
"cincuenta ", "sesenta ", "setenta ", "ochenta ", "noventa "};
private final String[] CENTENAS = {"", "ciento ", "doscientos ",
"trecientos ", "cuatrocientos ", "quinientos ", "seiscientos ",
"setecientos ", "ochocientos ", "novecientos "};
public Numero_a_Letra() {
}
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
}else{
n = getUnidades(millon) + "millon ";
}
return n + getMiles(miles);
}
}
Esta clase, recibe un numero de 0,00 a 999999999.00 en formato String, el separador decimal puede ser un
punto (.) o una coma (,), ademas tiene un parametro booleano "mayusculas" el cual sea verdadero (true) o
falso (false), retorna el resultado en mayusculas o minusculas, esta clase no acepta numeros negativos ni
tampoco numero mayores o iguales a mil millones, aunque claro trate de escribir esta clase para que sea
facilmente comprensible y asi pueda ser ampliado o modificado segun sus necesidades.
La forma de llamara a esta clase es:
Numero_a_Letra NumLetra = new Numero_a_Letra();
String numero = "20004.70";
System.out.println( numero + " literal = " +
NumLetra.Convertir(numero,true));
y probando para un rango mayor de numeros tenemos como resultado:
352822,50 literal = TRECIENTOS CINCUENTA Y DOS MIL OCHOCIENTOS VEINTE Y
DOS 50/100 BOLIVIANOS.
370,50 literal = trecientos setenta 50/100 Bolivianos.
74883,50 literal = SETENTA Y CUATRO MIL OCHOCIENTOS OCHENTA Y TRES
50/100 BOLIVIANOS.
354801,50 literal = trecientos cincuenta y cuatro mil ochocientos un
50/100 Bolivianos.
12,50 literal = DOCE 50/100 BOLIVIANOS.
511812060,50 literal = QUINIENTOS ONCE MILLONES OCHOCIENTOS DOCE MIL
SESENTA 50/100 BOLIVIANOS.
285364,50 literal = doscientos ochenta y cinco mil trecientos sesenta y
cuatro 50/100 Bolivianos.
97,50 literal = NOVENTA Y SIETE 50/100 BOLIVIANOS.
882,50 literal = OCHOCIENTOS OCHENTA Y DOS 50/100 BOLIVIANOS.
28,50 literal = VEINTE Y OCHO 50/100 BOLIVIANOS.
395362869,50 literal = TRECIENTOS NOVENTA Y CINCO MILLONES TRECIENTOS
SESENTA Y DOS MIL OCHOCIENTOS SESENTA Y NUEVE 50/100 BOLIVIANOS.
687611,50 literal = SEISCIENTOS OCHENTA Y SIETE MIL SEISCIENTOS ONCE
50/100 BOLIVIANOS.
46,50 literal = CUARENTA Y SEIS 50/100 BOLIVIANOS.
394625,50 literal = trecientos noventa y cuatro mil seiscientos veinte
y cinco 50/100 Bolivianos.
686671871,50 literal = seiscientos ochenta y seis millones seiscientos
setenta y un mil ochocientos setenta y un 50/100 Bolivianos.
860233047,50 literal = OCHOCIENTOS SESENTA MILLONES DOSCIENTOS TREINTA
Y TRES MIL CUARENTA Y SIETE 50/100 BOLIVIANOS.
656477159,50 literal = SEISCIENTOS CINCUENTA Y SEIS MILLONES
CUATROCIENTOS SETENTA Y SIETE MIL CIENTO CINCUENTA Y NUEVE 50/100
BOLIVIANOS.
99037,50 literal = NOVENTA Y NUEVE MIL TREINTA Y SIETE 50/100
BOLIVIANOS.
159180,50 literal = ciento cincuenta y nueve mil ciento ochenta 50/100
Bolivianos.
69993,50 literal = SESENTA Y NUEVE MIL NOVECIENTOS NOVENTA Y TRES
50/100 BOLIVIANOS.
76,50 literal = setenta y seis 50/100 Bolivianos.
74,50 literal = setenta y cuatro 50/100 Bolivianos.
4,50 literal = cuatro 50/100 Bolivianos.
572356,50 literal = QUINIENTOS SETENTA Y DOS MIL TRECIENTOS CINCUENTA Y
SEIS 50/100 BOLIVIANOS.
85,50 literal = OCHENTA Y CINCO 50/100 BOLIVIANOS.
678977004,50 literal = seiscientos setenta y ocho millones novecientos
setenta y siete mil cuatro 50/100 Bolivianos.
311275,50 literal = TRECIENTOS ONCE MIL DOSCIENTOS SETENTA Y CINCO
50/100 BOLIVIANOS.
888,50 literal = OCHOCIENTOS OCHENTA Y OCHO 50/100 BOLIVIANOS.
861740125,50 literal = OCHOCIENTOS SESENTA Y UN MILLONES SETECIENTOS
CUARENTA MIL CIENTO VEINTE Y CINCO 50/100 BOLIVIANOS.
370246,50 literal = trecientos setenta mil doscientos cuarenta y seis
50/100 Bolivianos.
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Datos en un jtexfield
Maysculas y minsculas en jtextfield
-Para mayusculas
private void
txtNombreTipoMantenimientoKeyReleased(java.awt.event.KeyEvent evt) {
txtNombreTipoMantenimiento.setText(txtNombreTipoMantenimiento.getText()
.toUpperCase());
}
Para minusculas
private void
txtNombreTipoMantenimientoKeyReleased(java.awt.event.KeyEvent evt) {
txtNombreTipoMantenimiento.setText(txtNombreTipoMantenimiento.getText()
.toLowerCase());
}
No permitir nmeros
private void txtNombreCargoKeyTyped(java.awt.event.KeyEvent evt) {
// lee la tecla presionada
int k=(int)evt.getKeyChar();
// chequea en ASCII si esta entre los numeros de las teclas q son
numeros
if (k > 47 && k < 58) {
evt.setKeyChar((char)KeyEvent.VK_CLEAR);
JOptionPane.showMessageDialog(null,"No puede ingresar
numeros!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
}
// si la tecla presionada es enter transfiere el foco
if(k==10){
txtNombreCargo.transferFocus();
}
}
Fuente: http://www.forosdelweb.com/f45/auxilio-extraer-datos-jtable-jtextfield-624066/
jtextField solo numerico
Bueno aqui te dejo un ejmplo lo debes poner en el Evento KeyTyped del jtextfield
private void txtCompraKeyTyped(java.awt.event.KeyEvent evt) {
int k=(int)evt.getKeyChar();
if (k >= 97 && k <= 122 || k>=65 && k<=90){
evt.setKeyChar((char)KeyEvent.VK_CLEAR);
JOptionPane.showMessageDialog(null,"No puede ingresar
letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
}
if(k==241 || k==209){
evt.setKeyChar((char)KeyEvent.VK_CLEAR);
JOptionPane.showMessageDialog(null,"No puede ingresar
letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
}
if(k==10){
txtCompra.transferFocus();
}
}
5
Manual Terico
De Java Netbeans
Hola Mas vale tarde que nunca aqui hay otro ejemplo que en mi programa funciona al 100%
JTextFieldtf1 = new JTextField(); //tambien funciona con
JFormattedTextField();
//codigo para limitar a que solo introdusca Nmeros
tf1.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!(Character.isDigit(c) ||
(c == KeyEvent.VK_BACK_SPACE) ||
(c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
e.consume();
}
}
});
Fuente: http://www.forosdelweb.com/f45/jtextfield-solo-numerico-575289/
pasar de un jtextfield a otro pulsando enter
import javax.swing.*;
import java.awt.event.*;
public Ejemplo(){
panel = new JPanel(new FlowLayout());
campo1 = new JTextField(30);
campo2 = new JTextField(30);
campo1.addActionListener(this);
panel.add(campo1);
panel.add(campo2);
this.getContentPane.add(panel);
}
Evento keypress
private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
// TODO: Agrege su codigo aqui:
if (evt.getKeyCode() == evt.VK_ENTER){
//lo q debe hacer cuando presione y suelte la tecla enter
}
}
Fuente: http://forodejava.com/showthread.php/960-Evento-keypress
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
}
}
Fuente: http://casidiablo.net/validacion-de-formularios-en-java/
}
/*Metodo para validar los Jtexfield existentes*/
public void validarCampos() {
/*En este caso tengo dos Jtexfield en mi Jframe los cuales deseo
validar*/
validarJtexfield(jTextField1,jTextField2);
}
Fuente:
http://www.javamexico.org/foros/java_standard_edition/validacion_de_campos_vacios_usando_o
bjetc
5
Manual Terico
De Java Netbeans
try {
fecha = formatoDelTexto.parse(strFecha);
}catch (ParseException ex) {
ex.printStackTrace();
}
System.out.println(fecha.toString());
Una nota sobre los formatos: si utilizamos una m minscula estamos diciendo minutos, si utilizamos M
mayscula decimos meses. Aqu pueden encontrar mayores detalles
Fuente: http://cafelojano.wordpress.com/2007/11/21/transformando-string-a-date-uso-de-
simpledateformat/
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Las variables globales: son accesibles desde cualquier parte de la clase y por tanto por cualquier mtodo
que este contenido en esta, la imagen nos muestra las variables Globales en el bloque numerado con 1 y 3.
Dado que la parte en la cual fueron definidas es la clase y fuera de cualquier mtodo. La palabra static
significa que la variable pertenece a la clase y no a las instancias de la misma aunque esta es teora
orientada a objetos aplica para un mejor entendimiento.
Las variables locales: son accesibles solo para el mtodo en el cual han sido definidas en este caso las
encerradas en el bloque 2.
Dos variables de mbitos distintos pueden llamarse igual, esto no se aconseja dado que hace necesario
ingresar un elemento que se denomina resolucin de ambigedad this, con fines prcticos evitaremos que
esto suceda.
Las variables de bloque: son las que se definen dentro de los bloques como el si el mientras y otros que
ms adelante trabajaremos en el curso.
Las formas de conversin de textos a numricos son las siguientes:
Integer.parseInt(texto); //convierte el texto dado a entero
Long.parseLong(texto);//convierte el texto dado a un entero
Double.parseDouble(texto);//convierte el texto dado a decimal
5. Operadores aritmticos de java.
Asignacin.................................................................................=
Suma..........................................................................................+
Resta..........................................................................................-
Multiplicacin...........................................................................*
Divisin...................................................................................../
Modulo......................................................................................%
Potenciacin..............................................................................Math.pow(base,exponente)
Raiz cuadrada............................................................................Math.sqrt(radicando)
Incremento de uno.....................................................................++
Decremento de uno...................................................................---
6. Operadores relacionales que aplica solo para los nmeros no para los textos
mayor que..................................................................................>
menor que..................................................................................<
mayor o igual que......................................................................>=
menor o igual que......................................................................<=
igual que....................................................................................==
diferente que..............................................................................!=
7. Operadores lgicos
AND..........................................................................................&&
OR.............................................................................................||
NOT...........................................................................................!
Los algoritmos de tres pasos usando Java-Netbeans
Paso 1 Leer los datos
Paso 2 Realizar los procesos Algoritmo
Paso 3 Imprimir o mostrar los resultados.
Para leer los datos ingresados por el usuario.
Obtendremos los datos inicialmente de tres posibles elementos que son: campos de texto textField, las
areas de texto textArea, ventana de captura JOptionPane. Todos los elementos mencionados retornan lo
capturado del usuario en el formato texto motivo por el cual se hace necesario convertirlo a numrico en
los casos en que sea necesario.
1. Recolectando los datos de una campo de texto.
nombreCampo.getText(); esta es la forma general de capturar un texto que el usuario a ingresado en el
campo de texto.
Ejemplo el campo de texto se llama nombre
String nom=nombre.getText(); //Lo que se encuentre escrito en el campo de texto lo recupera y lo
almacena en la variable.
2. Recolectando los datos de un rea de texto.
nombreAreaTexto.getText(); es decir igual que como lo hicimos en el caso del campo de texto.
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Crear un programa que permita convertir uno minutos ingresados por el usuario a horas.
1. Construir la GUI del ejercicio, para lo cual usaremos dos cajas de texto una para los minutos ingresados
y otra para colocar su equivalente a horas es decir la respuesta el problema dado.
2. Asignar nombres a las cajas de texto de forma que sean usados correctamente en el cdigo para captura y
mostrar los datos.
3. Ya en el cdigo capturar los minutos ingresados convertirlos a variables decimales.
4. Aplicar la regla de tres para pasar minutos a horas.
5. Mostrar en el campo de texto seleccionado el resultado de la operacin.
Video: http://www.youtube.com/watch?v=5gC4RSdXF4Q
1. Solicitar que un usuario ingrese la base de un nmero y el exponente al cual desea elevarlo, el programa
debe mostrar el resultado de la operacin.
2. Solicitarle a una persona que ingrese su nombre, identificacin y cuantos billetes de 1000, 5000, 10000,
20000, 50000 tiene, para que el sistema le imprima el valor total de dinero del que dispone.
3. Dado el lado de un cuadrado, imprimir el rea del mismo.
4. Dada la base y la altura de un triangulo, imprimir el rea del mismo
5. Pedir a un usuario que ingrese un nmero, luego otro y el programa deber imprimir el residuo de la
divisin entera del primer nmero sobre el segundo.
6. Pedir a un usuario que ingrese su nombre, identificacin, nombre de la materia, y las notas de
seguimiento, parcial y final, el sistema deber imprimir todos los datos junto con la nota definitiva.
7. Dada una lista de cuatro productos, leer el nombre y el precio de cada uno de ellos, el precio no incluye
iva, luego imprimir, el valor del iva para cada producto y el costo total de la compra con y sin iva.
8. Dado un nombre, ao de nacimiento y teniendo presente el ao actual, calcular la edad de la persona.
9. Pensando en los datos de un triangulo rectngulo, calcular, dados la hipotenusa y uno de los catetos, el
rea de dicho triangulo.
10. Dado el nombre de un estudiante, la materia, las notas de seguimiento y parcial, el programa deber
imprimir todos los datos y cuanto necesita el estudiante para ganar la asignatura.
11. Dada una cantidad de dolares y el valor de la tasa de cambio a pesos, imprimir a cuantos pesos equivale
la cifra ingresada.
12. Pedir a una persona que ingrese el monto que desea que le presten en una natillera, si los intereses son
anticipados al 5% mensual, preguntar a cuantos meses desea el prstamo y generarle cuanto paga de
intereses y cuanto realmente le terminan prestando.
13. Construir un programa que permita calcular el valor real de un electrodomstico del cual se debe
identificar el nombre, el nmero de cuotas y el costo de cada cuota.
14. Dado el nmero de peldaos de una escalera, al ancho del peldao y la distancia entre dos peldao,
imprimir el largo de dicha escalera. Si el ancho del peldao esta dado en milmetros, la distancia entre
ellos esta dada en metros y se pide el largo de la escalera en centmetros.
15. Dados 8 dgitos binarios ingresados por el usuario, imprimir su equivalente decimal.
16. Dados 8 dgitos octales ingresados por el teclado, imprimir el equivalente decimal.
Fuente: http://sites.google.com/site/tutoriasdeingenieria/lenguajes-de-programacion/operadores-y-
operaciones-basicas-de-java-netbeans
Usando If en Java-Netbeans
Objetivo:
Reconocer la toma de decisiones en el lenguaje seleccionado.
Al finalizar la clase los estudiantes estarn en capacidad de:
Utilizar las decisiones que ofrece el lenguaje seleccionado.
Realizar ejercicios de programacin en el lenguaje seleccionado.
Los operadores relacionales para los tipos primitivos
<................................................................................................menor que
>................................................................................................mayor que
<=..............................................................................................menor o igual que
>=..............................................................................................mayor o igual que
!=...............................................................................................diferente de
==..............................................................................................Igual a
Los operadores lgicos
&&.............................................................................................and
||.................................................................................................or
5
Manual Terico
De Java Netbeans
!.................................................................................................not
Los valores lgicos boolean
true
false
Las funciones para comparar textos
Para verificar si es igual texto.equals( textoComparacin )
para verificar si es mayor, menor incluso igual texto.compareTo( textoComparacin)
Las decisiones.
Las sentencias de decisin se denominan SI DE LO CONTRARIO. Su finalidad es la de hacer una
pregunta lgica o relacional y con base en dicha pregunta hacer un bloque de cdigo u otro. Se dice que un
si esta anidado cuando se encuentra dentro de otro bloque si o por de lo contrario.
Si de una sola lnea
Esta decisin solo aplica para una lnea que se encuentra exactamente despus del if, tambin aplica para
else, cuando sea de una sola lnea no necesita las llaves.
Si de un bloque
La finalidad de este es evaluar la expresin y en caso que sea verdadera ejecutar todas las instrucciones que
se encuentran encerradas por {}. Recordemos a a esa parte que est delimitada por las llaves se les
denomina bloque.
Si con de lo contrario
La finalidad es evaluar la expresin si es verdadera ingresa al bloque que est debajo del if desde {abre
hasta }cierra. En caso de ser la expresin falsa, salta el bloque principal y entra al bloque else que esta
delimitado por {}, {abre el bloque }cierra el bloque.
Esta es excluyendo es decir o entra al bloque de verdad o lo hace al de falsedad pero no a ambos. A esto se
le denomina exclusin mutua.
Si de lo contrario Si... else.
5
Manual Terico
De Java Netbeans
Esta decisin es especial en la medida que muestra un anidamiento implcito. La finalidad es hacer la
pregunta inicial si esta es falsa, por de lo contrario se realiza otra pregunta, esto se repite indefinidamente y
solo hasta el final se agrega de lo contrario. Cuando se ingresa a un bloque ya no se ingresa a ningn otro
de manera que siguen siendo excluyentes entre SI
Las decisiones anidadas.
Significan que dentro de cualquiera de los bloques de los if,else e if else, se pueden colocar otros if, else e
if else y a su vez dentro de estos otros y esto sin un lmite dado. Una clave es respetar la indentacin:
Claves necesarias para las decisiones
1. Siempre la expresin del if debe estar encerrada entre parntesis ( expresin) y dentro de sta se pueden
colocar otros if, else, if else...
2. Es mejor siempre delimitar los bloques con {}de forma que no se preste para confusiones.
3. Siempre respetar la sangra, tabulacin o indentacin.
4. Es mejor anidar preguntas, que hacer expresiones muy complejas de entender.
5. El mayor o igual cuando se habla de enteros, puede ser reemplazado por > valor -1 y < valor+1
6. Cuando se comparan textos == no funciona y debe ser utilizada la palabra equals as:
forma 1
String s="hola";
if (s.equals("prueba")==true){
//bloque de verdad
}
forma 2
String variable="";
if ("prueba".equals(variable)){
//bloque de verdad
}
forma 3
String var1="",var2="";
if ( var1.equals(var2)){
//bloque de verdad
}
forma 4
String var1="",var2="";
if ( var1.equals(var2+"expresin")){
//bloque de verdad
}
7. Cuando se define una variable dentro de un bloque, sta solo "vive" para el bloque por tanto fuera de este
sirve, para recordar el tema del mbito ver clases anteriores
La instruccin casos
Es usada para determinar de entre un grupo de elementos cual de ellos es igual a uno dado. Su desventaja
radica en que solo funciona para enteros int o char y en los casos solo pueden haber valores constantes,
aclaro que este solo es un comportamiento de java otros lenguajes no la manejan o lo hacen de manera
distinta.
5
Manual Terico
De Java Netbeans
La palabra break, determina el fin del caso y los dos puntos despus del literal determinan el inicio. En el
grfico lo que aparece con corchetes significa que puede estar pero no es obligatorio.
default es el caso por defecto si despus de evaluar todos los anteriores no encuentra coincidencias
entonces por defecto ingresa a ste.
Dentro del grupo de sentencias se puede ubicar cualquiera de las vistas o por ver es decir if, else, for, while
switch.....
Respetar la tabulacin hace la diferencia entre entender o complicar el problema.
Fuente: http://sites.google.com/site/tutoriasdeingenieria/lenguajes-de-programacion/usando-if-en-
java-netbeans
Limitar los caracteres en un JTextField
Este es un ejemplo muy basico, donde se limita la entrada de caracteres en un JTextField, pues es una
forma muy util cuando se necesita.
Para que quede claro, la clase JTextFieldLimit es una clase de tipo Document que sobreescribir
insertString() que controlar la condicion de la cantidad de caracteres como lmite. Esta clase es
llamada donde se instancia el JTextField, es decir donde se declara dicho componente, veamos:
/**
*
* @author manix
*/
import javax.swing.text.*;
JTextFieldLimit(int limit) {
super();
this.limit = limit;
}
@Override
public void insertString
(int offset, String str, AttributeSet attr)
throws BadLocationException {
if (str == null) return;
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Segunda captura que corresponde al botn proveedores, el cual contiene los datos mas resaltantes de un
proveedor de productos:
5
Manual Terico
De Java Netbeans
Tercera captura que le corresponde al botn de clientes, el cual contiene los datos principales de los clientes
que se tiene:
La cuarta captura corresponde al botn de productos al cual se ingresaran los atributos de cada producto
para tenerlos en la base de datos y a partir de hay hacer una orden de compra.
5
Manual Terico
De Java Netbeans
La quinta captura o imagen que se muestra corresponde al botn de personal, el cual contiene los datos o
atributos mas resaltantes de cada vendedor o almacenero que manejara el software de inventario:
La sexta y ltima imagen que se muestra corresponde a el botn de orden de compra el cual va a interactuar
con los productos existentes para a partir de los que se tiene hacer una orden de compra.
5
Manual Terico
De Java Netbeans
ESPECIFICACIONES:
Cuando intenten cargar el aplicativo en su NetBeans quiz les aparezca una advertencia de error, eso por el
problema de compatibilidad ya que lo desarroll en la versin del NetBeans 6.7.1 . Pero omiten la
advertencia de error y le dan simplemente a continuar o aceptar y se cargar el aplicativo a su lista de
proyectos con un pequeo icono de advertencia en la taza de caf, pero correr sin ningn problema..
Una vez que hayan cargado el aplicativo a su lista de proyectos en NetBeans aparecern dos paquetes, el
paquete llamado "newpackage" es el que contiene las claces y formularios y para que vean correr el
aplicativo completo abren ese paquete y dan click derecho al formulario llamado "Presentacion.java" y
seleccionan ejecutar archivo.
Aparecer despus de la presentacin una pequea ventana que pedir la validacin y existen dos tipos
como acceder como administrador o como vendedor, si se selecciona vendedor se activara el cuadro donde
les pide el cdigo del vendedor, pero en este caso ingresaremos como administrador, para eso en nivel de
acceso seleccionamos "ADMINISTRADOR" y la contrasea es "ACREDITACIN" le dan a "OK" y listo.
Justamente despus de logearse les aparecer una ventana que les pide el tipo de cambio, bueno es sin
importancia por que lo puse mas que todo para complementarlo, claro eso no quita que sea importante ya
que manejaremos precios, pero bueno no afecta en nada lo que pongan en ese apartado de tipo de cambio,
si pueden codificarlo y darle un uso para que sea utilizado el tipo de cambio dentro del aplicativo sera
excelente, pero hay esta solo para resaltar ese atributo dentro del aplicativo, entonces solo colocan un valor
numrico cualquiera al tipo de cambio y le san en "SAVE" y se abrir recin el formulario de control,
asimismo la fecha que aparece es "ficticia" ya que no encontr el mtodo de que como se cargue la fecha
actual para ese cuadro de texto.
Algo muy importante, se observa en cada formulario en la parte izquierda un jList o mejor dicho una lista
que contiene el listado de proveedores, vendedores, productos segun sea el formulario seleccionado, el
algoritmo lo implemente para que mediante un evento de teclado se impriman los atributos del objeto
seleccionado que este en la lista, es decir, por ejemplo seleccionan el botn de PRODUCTOS se abrira el
formulario correspondiente y se observa un listado de productos en una lista al lado izquierdo,
seleccionamos cualquiera le damos un click y le damos ENTER y se imprimiran los atributos del producto
seleccionado.
Lo que quise desarrollar y esto si lo resalto mucho por que quise desarrollar un algoritmo que me permita
filtrar la lista (jList) a travs de un campo de texto (TextField) para que el metodo de bsqueda sea mas
sencillo, si alguien encuentra la forma de hacerlo se agradecer, ya que lo busque por Internet y nunca
logr encontrar la manera como.
5
Manual Terico
De Java Netbeans
Principalmente cabe mencionar que no se utiliz conexiones a bases de datos como SQL o MySql ni Oracle
por motivos que en aquel siclo aun no veiamos ese tema, pero tiene un estilo de base de datos ya que los
datos ingresados se guardan en archivos binarios de extensin ".bin", lo cual guarda los datos ingresados en
la misma carpeta donde se encuentran los archivos del aplicativo.
Adicionalmente si alguien sabe como insertarle un calendario "jCalendar" al aplicativo en las partes donde
se necesita fecha lo agradecera mucho ya que trate de insertarlo pero no entend nunca por que me
identificaba como error, bueno es un detalle mas para mejorar la apariencia del aplicativo.
El cdigo de cada producto se genera aleatoriamente con el mtodo "Randon" para que no existan
problemas al momento de crear uno manualmente.
Por motivos de tiempo no implemente el botn de Kardex, ademas por falta de conocimiento en la parte
temtica ya que es un tema mas de contabilidad, ya que si alguien podra darme ideas de como implementar
un Kardex se podra trabajar en ello.
En conclusin este es un pequeo aplicativo que desarroll, con la intencin que sea totalmente intuitivo
para un usuario, con el genial NetBeans IDE y lo posteo con la intencin tambien de mejorarlo y asimismo
aprender mas de este programa tan completo e interesante, cualquier aporte al aplicativo, comentario,
crtica constructiva y puntos se agradecern mucho, saludos.
Fuente: http://www.taringa.net/posts/info/10095225/Software-de-inventario-desarrollado-en-java---
NetBeans.html
5
Manual Terico
De Java Netbeans
Fuente: http://ayuda-java.blogspot.com/2007/07/cmo-hacer-cuadros-de-dilogo-simples.html
5
Manual Terico
De Java Netbeans
2.- Ahora nos ubicamos en nuestro proyecto , en mi caso ser este proyecto:
5
Manual Terico
De Java Netbeans
4.- NetBeans nos debe confirmar que ya se construyo el archivo jar de nuestra aplicacin
con un mensaje de BUILD SUCCESSFUL el cual nos indica que la construccin ha sido
exitosa . Es en este momento que en la carpeta de nuestro proyecto se ha creado una
nueva carpeta llamada dist en la cual esta nuestro archivo jar:
Ahora cada vez que deseamos ejecutar nuestro proyecto sin abrir el netbeans solo bastar
con hacer doble clic en el archivo JAR y listo.
Tambin se puede agregar nuestro archivo JAR a nuevos proyectos que
desarrollemos .
Fuente: http://javax0711.blogspot.com/2009/04/generar-un-archivo-jar-ejecutable.html
5
Manual Terico
De Java Netbeans
Fuente: http://mx.answers.yahoo.com/question/index?qid=20110313152059AAHa6Qp
Esta clase contiene el mtodo esttico main (mtodo vinculado a la clase y no a sus instancias u objetos)
necesario para arrancar, a travs de la mquina virtual de Java, el proyecto. Qu hace exactamente el
mtodo main?. Pues llamar a launch(ApliEjemploApp.class, args);
Esto crea una instancia de la clase ApliEjemploApp y llama al mtodo startup de la instancia u objeto
recin creado. En el mtodo startup tenemos el mtodo show(new ApliEjemploView(this)); con esto
instanciamos la clase ApliEjemploView y la visualizamos.
ApliEjemploView
ApliEjemploView es la clase que describe al JFrame o ventana principal. Si desplegamos desde el
Inspector los componentes (tenemos que estar en modo Diseo) veremos el siguiente rbol
5
Manual Terico
De Java Netbeans
Finalmente, la plantilla ha creado otro JFrame, ApliEjemploAboutBox, que muestra una ventana con
informacin bsica de nuestra aplicacin.
5
Manual Terico
De Java Netbeans
Esta interfaz est compuesta bsicamente de un componente JDialog (un tipo especial de ventana) que a su
vez contiene componentes del tipo JButon y JLabel. Observe que los componentes del tipo JLabel pueden
contener textos y/o imgenes. Como es natural, para una aplicacin particular tendremos que modificar los
val0res de estos componentes.
Vamos ahora a singularizar la interfaz ApliEjemploView.
La primera tarea que vamos a hacer es particularizar la barra de men, pues deseamos que las
opciones principales del men principal sean Archivo, Editar, Ayuda y Cerrar. Para ello lo primero ser
cambiar el texto de la primera opcin File por Archivo. Para ello seleccionamos el JMenu
correspondiente a File y desde la caja de propiedades cambiamos la propiedad text. Despus
seleccionamos desde la paleta de mens un componente men en el men principal al que le
asignaremos la propiedad text en Editar. Hacemos lo mismo con una opcin de Cerrar.
Cambiamos el texto de la opcin Help y finalmente reorganizamos la opciones. Es decir:
Ahora en la opcin principal Archivo queremos que se desplieguen las cuatro opciones Abrir,
Salvar, Salvar como y Salir. Para ello, insertamos tres elementos de men (JMenuItem) por
encima del ya existente. Cambiamos la propiedad text a los textos previstos, cambiamos las
propiedades toolTipText a Abrir archivo nuevo, Salvar archivo, Salvar con otro nombre y
Salir de la aplicacin respectivamente. Finalmente, cambiamos las propiedades accelerator de cada
una de las opciones de Archivo a travs de
de esta manera cambiamos el atajo de tejado a Ctrl+A, Ctrl+S, Ctrl+C las tres primeras opciones de
Archivo. Es decir:
5
Manual Terico
De Java Netbeans
Vamos finalmente a colocar un icono en las opciones Abrir y Salvar. Para hacer esto lo primero que
tenemos que hacer es localizar la carpeta C:\EjemplosJava\ApliEjemplo\src\apliejemplo\resources (o en su
caso, la correspondiente a los recursos del proyecto) y copiar los iconos que representarn las dos
funciones. Luego seleccionando el elemento de men Abrir y desde la caja de propiedades
seleccionamos la propiedad icon y seleccionamos finalmente el archivo, es decir:
Finalmente,
Fuente: http://jtagua.wordpress.com/2010/09/24/tutorial-de-java-swing-11-jmenubar-jmenu-jmenuitem-jprogressbar-
jtextarea/
5
Manual Terico
De Java Netbeans
ClaseObjetoParaComboBox(resultado.getInt(1),resultado.getString(2));
data.addElement(oListaTemporal);
}
while(resultado.next());
return data;
}
else {
return null;
}
} catch(Exception ex) {
System.out.print(ex);
return null;
}
}
Fuente: http://chuwiki.chuidiang.org/index.php?
title=JComboBox_Con_Objetos_y_Base_de_Datos_MySQL
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
clase que realmente realiza las acciones bsicas (agregar, modificar, eliminar, consultar) pero
implementadas de una mejor manera comparada con los otros post que hay en este blog sobre este tema
(tampoco quiero decir que sea la mejor ni mucho menos).
La base de datos que usaremos para este ejemplo es la siguiente:
BD: prueba.
tabla: usuarios.
campos: id(autoinc), nombre, contrasea.
Diagrama de clases:
Bueno, primero que nada empezaremos con nuestra clase que contendr los mtodos de las acciones que
vamos a realizar.
import java.sql.*;
import java.util.Hashtable;
public class SQLconnection {
private String user;
private String password;
private String db;
private String host;
private String url;
private Connection conn = null;
private Statement stm;
private ResultSet rs;
public SQLconnection()
{
this.url = jdbc:mysql:// + this.host + / + this.db;
}
public SQLconnection (String server, String usuario, String contrasea,
String bd)
{
this.user = usuario;
this.password = contrasea;
this.db = bd;
this.host = server;
this.url = jdbc:mysql:// + this.host + / + this.db;
}
public void connectar()
5
Manual Terico
De Java Netbeans
{
try {
Class.forName(org.gjt.mm.mysql.Driver);
conn = DriverManager.getConnection(url, user, password);
if (conn != null)
{
System.out.println(Conexin a base de datos +url+ Ok);
stm = conn.createStatement();
}
}
catch(SQLException ex) {
System.out.println(Hubo un problema al intentar conectarse con la base
de datos +url);
}
catch(ClassNotFoundException ex) {
System.out.println(ex);
}
}
public String getDb() {
return db;
}
public void setDb(String db) {
this.db = db;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public ResultSet consultar(String tabla) throws SQLException
{
rs = stm.executeQuery(SELECT * FROM + tabla);
return rs;
}
public String buscarNombre(String tabla, String nombre) throws
SQLException
{
String name = null;
try{
rs = stm.executeQuery(SELECT * FROM + tabla + WHERE nombre = +
nombre + LIMIT);
rs.next();
name = rs.getString(2);
}catch(SQLException ex){System.out.println(ex);}
return name;
}
public void insertar(Hashtable usuario)
{
try {
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Fuente: http://fragowb.wordpress.com/2008/07/22/ejemplo-de-java-sql-netbeans/
5
Manual Terico
De Java Netbeans
error la cual contendra el error que pueda optenerce en el proceso de insert o update,o en su caso no traer
nada debido a que la accion fue exitosa.
Por ultimo creamos el metodo para ejecutar consultas para ello utilizaremos un componente llamado
ResultSet.
public ResultSet Consulta(String sql){
String error=";
Try
{
St=Conec.createStatement();
reg=St.executeQuery(sql);
}
catch(Exception ee)
{
error = ee.getMessage();
}
return(reg);
}
Dentro de esta funcion volvemos a encontrar a nuestro Statement por lo anteriormente mencionado sera
nuestro ejecutor de comandos del parametro sql el cual tendra como valor la consulta que deseamos
ejecutar.
Conclusion:
Todas la variables de conexion (cn), Statement (St) y ResultSet(reg) fueron declaradas fuera de todos los
metodos, es decir son globales y pueden verse en toda la clase no importa en que proceso lo utilizemos, y
para saldar la duda, anteriormente dije que todos estos son metodos, asi es pero por que ejecutar y consulta
los llame funciones, es sencillo recordemos algo de teoria, toda funcion retorna un valor es por ello que se
le llama funciones a ejecutar y a consulta por que regresan el valor de la variable error y reg
respectivamente.
Uso
Para terminar esta entrada, les dejo la forma de utilizar esta clase.
//Instanciamos la clase de conexion
Conexion cxn = new Conexcion();
//Generamos un insert en la tabla de clientes usando el metodo ejecutar
de la clase conexin
string msg =
cxn.Ejecutar(INSERT INTO tpjclientes (nombre,apellidos) VALUES
(Juan,'Perez);
//Generamos un select a la tabla de clientes, el resultado caera en
resultset
ResultSet = cxn.Consulta(SELECT * FROM tpjclientes);
NOTA IMPORTANTE: Las funciones o metodos utilizados, regresan un tipo de datos o componente
especifico, es por ello que en ejecutar el resultado lo guardo en eun string y en consulta lo guardo en n
ResultSet, ademas hay que resaltar algo, java obliga a los usuarioa utilizar el clasico catch y try para
manejar correctamente las exepciones que puedan existir dentro de la llamada al metodo, eso es todo por el
dia de hoy espero les sea de gran utilidad este codigo, dejen sus comentarion y/o sugerencias de que desean
ver sobre tecnologia en el blog.
Fuente: http://jhodrickgg.wordpress.com/2007/11/30/conectar-mysql-a-java-netbeans/
Conectando PostgreSQL con Java
En este mini tutorial intentar explicar la manera en conectar nuestra aplicacin hecha en JAVA con la Base
de Datos de PostgreSQL.
Primero, es necesario descargarse el JDBC Driver para PostgreSQL. Este se encuentra en la pgina
http://jdbc.postgresql.org/index.html Obviamente, ser necesario contar con nuestra Base de Datos
funcionando para realizar las consultas necesarias.
Posteriormente hay que determinar la manera de agregar este Driver a nuestro proyecto. NetBeans ofrece
una manera mas que sencilla.
Conociendo la ubicacin de nuestro Driver y con el proyecto abierto, en el Panel de Proyectos, ubicamos
en el rbol de Proyecto la opcin Libraries, clic Derecho en ella y seleccionamos Add JAR / Folder..., de
esta manera estaremos
5
Manual Terico
De Java Netbeans
agregando ej .JAR del Driver que descargamos. Esto nos crea en nuestro proyecto una carpeta llamada
"dist" y en ella otra de nombre "lib" donde esta nuestro Driver.
Ahora, teniendo lo necesario, podemos probar nuestra conexin con PostgreSQL y realizar lo que nos
concierne, Altas, Bajas y Modificaciones a nuestras tablas.
Para empezar, debemos de importar lo siguiente:
import java.sql.*;
Cabe mencionar que hay una gran diferencia entre Select y Update, Insert o Delete, ya que no se aplican de
igual manera. A continuacin muestro el proceso para realizar un Select (en idioma geek, vamos a
selectear)
public class Main{
public static void main(String[] args){
/*Variable para almacenar la URL de conexin a nuestra Base de Datos, si esta estuviera en otra
mquina, necesitariamos estar registrados en ella y contar con su IP*/
String url = "jdbc:postgresql://localhost/moo";
try{
//Acceso al Driver
Class.forName("org.postgresql.Driver");
//La conexin con los parmetros necesarios
Connection con =
DriverManager.getConnection( url,"postgres","postgres");
//Abrimos la conexin y la iniciamos
Statement stmt = con.createStatement();
/*Un ResultSet es como en .NET un DataSet, un arreglo temporal donde se almacenar el resultado
de la consulta SQL*/
ResultSet rs;
//Una variable String para almacenar la sentencia SQL
String query = "select id as ID from moo.usuarios";
//En el ResultSet guardamos el resultado de ejecutar la consulta
rs = stmt.executeQuery(query);
//En un ciclo while recorremos cada fila del resultado de nuestro Select
while ( rs.next()){
/*Aqui practicamente podemos hacer lo que deseemos con el resultado, en mi caso solo lo mande a
imprimir*/
System.out.println(rs.getString("ID") + " " +
rs.getString("ID"));
}
//Cerramos la conexin
stmt.execute("END");
stmt.close();
con.close();
}
catch( Exception e ){
//Por si ocurre un error
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
Para realizar todo aquello diferente a un Select, utilzaremos lo siguiente:
/*Variable para almacenar la URL de conexin a nuestra Base de Datos, si esta estuviera en otra
mquina, necesitariamos estar registrados en ella y contar con su IP*/
String url = "jdbc:postgresql://localhost/moo";
try{
//Acceso al Driver
Class.forName("org.postgresql.Driver");
//La conexin con los parmetros necesarios
Connection con =
DriverManager.getConnection( url,"postgres","postgres");
5
Manual Terico
De Java Netbeans
En primera instancia nos conectamos a la BD y ejecutamos la consulta SQL que nos llenar el ResultSet
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//Reemplazar localhost, prueba, usuario y clave por los host de la base
de datos, nombre de esquema, user y pass.
Connection conexion =
DriverManager.getConnection("jdbc:mysql://localhost/prueba","usuario","clave");
Statement s = conexion.create();
ResultSet rs = s.executeQuery("select * from persona");
Crear un JTable, pasando como parmetro un DefaultTableModel
DefaultTableModel modelo = new DefaultTableModel();
JTable tabla = new JTable(modelo);
Nos queda resolver como llenar el DefaultTableModel. Bsicamente, la forma es esta:
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
package desktopapplication1;
import java.sql.*;
import javax.swing.JOptionPane;
/**
*
* @author ALUMNO
*/
public class alumnos extends javax.swing.JFrame {
private Connection conn;
private Statement sentencia;
private ResultSet res;
try{
Class.forName("org.gjt.mm.mysql.Driver");
onn=DriverManager.getConnection("jdbc:mysql://localhost/control_escolar
","root","root");
sentencia=conn.createStatement();
JOptionPane.showMessageDialog(this,"La conexion fue
correcta");
}catch(Exception e){
JOptionPane.showMessageDialog(this,e.getMessage());
}
}
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setName("Form"); // NOI18N
5
Manual Terico
De Java Netbeans
org.jdesktop.application.ResourceMap resourceMap =
org.jdesktop.application.Application.getInstance(desktopapplication1.De
sktopApplication1.class).getContext().getResourceMap(alumnos.class);
jButton1.setText(resourceMap.getString("btn_prim.text")); //
NOI18N
jButton1.setName("btn_prim"); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton1ActionPerformed(evt);
}
});
jTextField1.setText(resourceMap.getString("Id_txt.text")); //
NOI18N
jTextField1.setName("Id_txt"); // NOI18N
jTextField2.setText(resourceMap.getString("jTextField2.text"));
// NOI18N
jTextField2.setName("jTextField2"); // NOI18N
jTextField3.setText(resourceMap.getString("jTextField3.text"));
// NOI18N
jTextField3.setName("jTextField3"); // NOI18N
jTextField4.setText(resourceMap.getString("jTextField4.text"));
// NOI18N
jTextField4.setName("jTextField4"); // NOI18N
jLabel1.setText(resourceMap.getString("jLabel1.text")); //
NOI18N
jLabel1.setName("jLabel1"); // NOI18N
jLabel2.setText(resourceMap.getString("jLabel2.text")); //
NOI18N
jLabel2.setName("jLabel2"); // NOI18N
jLabel3.setText(resourceMap.getString("jLabel3.text")); //
NOI18N
jLabel3.setName("jLabel3"); // NOI18N
jLabel4.setText(resourceMap.getString("jLabel4.text")); //
NOI18N
jLabel4.setName("jLabel4"); // NOI18N
jLabel5.setText(resourceMap.getString("jLabel5.text")); //
NOI18N
jLabel5.setName("jLabel5"); // NOI18N
jLabel6.setText(resourceMap.getString("jLabel6.text")); //
NOI18N
jLabel6.setName("jLabel6"); // NOI18N
jTextField5.setText(resourceMap.getString("jTextField5.text"));
// NOI18N
jTextField5.setName("jTextField5"); // NOI18N
jTextField6.setText(resourceMap.getString("jTextField6.text"));
// NOI18N
jTextField6.setName("jTextField6"); // NOI18N
5
Manual Terico
De Java Netbeans
jButton2.setText(resourceMap.getString("jButton2.text")); //
NOI18N
jButton2.setName("jButton2"); // NOI18N
jButton2.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton2ActionPerformed(evt);
}
});
jButton3.setText(resourceMap.getString("jButton3.text")); //
NOI18N
jButton3.setName("jButton3"); // NOI18N
jButton3.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton3ActionPerformed(evt);
}
});
jButton4.setText(resourceMap.getString("jButton4.text")); //
NOI18N
jButton4.setName("jButton4"); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton4ActionPerformed(evt);
}
});
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 53,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(jLabel4)
.addComponent(jLabel3)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING, false)
.addComponent(jTextField6)
.addComponent(jTextField5)
.addComponent(jTextField4)
.addComponent(jTextField2,
javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
.addComponent(jTextField3)
5
Manual Terico
De Java Netbeans
.addComponent(jTextField1))
.addGap(32, 32, 32)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jButton2)
.addComponent(jButton3)
.addComponent(jButton1)
.addComponent(jButton4))
.addContainerGap(33, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(28, 28, 28)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton4)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jTextField2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(jButton1))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jTextField3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
5
Manual Terico
De Java Netbeans
.addComponent(jLabel3))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel5)
.addComponent(jTextField5,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton3))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel6)
.addComponent(jTextField6,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGap(36, 36, 36)
.addComponent(jButton2)))
.addContainerGap(56, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/control_escola
r","root","root");
sentencia=conn.createStatement();
jTextField1.setText(res.getString(1));
jTextField2.setText(res.getString(2));
jTextField3.setText(res.getString(3));
jTextField4.setText(res.getString(4));
jTextField5.setText(res.getString(5));
jTextField6.setText(res.getString(6));
}
catch(Exception e){
JOptionPane.showMessageDialog(this,e.getMessage());
}
}
5
Manual Terico
De Java Netbeans
try{
String Matricula=("0");
String Nombre_Estudiante=jTextField2.getText();
String Edad=jTextField3.getText();
String Sexo=jTextField4.getText();
String Telefono=jTextField5.getText();
String Direccion=jTextField6.getText();
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
JOptionPane.showMessageDialog(this,e.getMessage());
}
catch(Exception e){
JOptionPane.showMessageDialog(this,e.getMessage());
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new alumnos().setVisible(true);
}
});
5
Manual Terico
De Java Netbeans
Fuente: http://forodejava.com/showthread.php/2313-Mandar-llamar-a-otra-ventana-desde-un-boton-
utilizando-NetBeans.
resultSet.last();
int rowCount = resultSet.getRow();
Fuente: http://forodejava.com/showthread.php/159-tama%C3%B1o-del-resultset
Mostrar un ResultSet en un JTable en Java
JAVA:
//Primero se obtiene la conexin a la base de datos con un cdigo
como este:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conexion =
DriverManager.getConnection("jdbc:mysql://localhost/prueba","usuari
o","clave");
//ParameterlosdatosenelJTable,usaremoslaclaseDefaultTableModel.Pa
raellobastaconinstanciarelJTablecomosemuestraenelcodigo
DefaultTableModelmodelo=newDefaultTableModel();
JTabletabla=newJTable(modelo);
//AhoraslohayquerellenarelDefaultTableModelconlosdatosdelResultS
et.
5
Manual Terico
De Java Netbeans
//Creamoslascolumnas.
modelo.addColumn("id");
modelo.addColumn("nombre");
modelo.addColumn("telefono");
//Recorremoslosregistrosconunciclowhile
while(rs.next())
{
//Secreaunarrayqueserunadelasfilasdelatabla.
Object[]fila=newObject[3];//Haytrescolumnasenlatabla
//Serellenacadaposicindelarrayconunadelascolumnasdelatablaenbase
dedatos.
for(inti=0;i<3;i++)
fila[i]=rs.getObject(i+1);//Elprimerindiceenrsesel1,noelcero,pore
sosesuma1.
//NoescomoenPHPootroslenguajesdondelosindicesiniciancon0
//Seaadealmodelolafilacompleta.
modelo.addRow(fila);
}
Fuente: http://www.scriptmatico.com/2008/04/18/mostrar-un-resultset-en-un-jtable-en-java/
Fuente: http://www.programacion.com/foros/java-
basico/cargar_un_jcombobox_desde_un_resulset_con_netbeans_5_0_rc2_283227
Lo que haremos ser bsicamente crear una clase que herede de la clase
AbstractTableModel:
Esta clase abstracta provee la implementacin por defecto de la mayora de los mtodos
en la interfaz TableModel. Para crear un TableModel como subclase de
AbstractTableModel necesitars implementar nicamente los sigientes tres mtodos:
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
}
// si ocurren problemas arriba, suponer que es tipo Object
return Object.class;
}
// obtener el nmero de columnas en el objeto ResultSet
public int getColumnCount() throws IllegalStateException {
// asegurar que la conexin a la base de datos est disponible
if ( !conectadoALaBaseDeDatos )
throw new IllegalStateException( "No hay conexion a la base
de datos" );
// determinar el nmero de columnas
try {
return metaDatos.getColumnCount();
}
// atrapar excepciones SQLException e imprimir mensaje de error
catch ( SQLException excepcionSQL ) {
excepcionSQL.printStackTrace();
}
// si ocurren problemas arriba, devolver 0 para el nmero de
columnas
return 0;
}
// obtener el nombre de una columna especfica en el objeto
ResultSet
public String getColumnName( int columna ) throws
IllegalStateException {
// asegurar que la conexin a la base de datos est disponible
if ( !conectadoALaBaseDeDatos )
throw new IllegalStateException( "No hay conexion a la base
de datos" );
// determinar el nombre de la columna
try {
return metaDatos.getColumnName( columna + 1 );
}
// atrapar excepciones SQLException e imprimir mensaje de error
catch ( SQLException excepcionSQL ) {
excepcionSQL.printStackTrace();
}
// si hay problemas, devolver cadena vaca para el nombre de la
columna
return "";
}
// devolver el nmero de filas en el objeto ResultSet
public int getRowCount() throws IllegalStateException {
// asegurar que la conexin a la base de datos est disponible
if ( !conectadoALaBaseDeDatos )
throw new IllegalStateException( "No hay conexion a la base
de datos" );
return numeroDeFilas;
}
// obtener el valor en una fila y columna especficas
public Object getValueAt( int fila, int columna ) throws
IllegalStateException {
// asegurar que la conexin a la base de datos est disponible
if ( !conectadoALaBaseDeDatos )
throw new IllegalStateException( "No hay conexion a la base
de datos" );
// obtener un valor en una fila y columna especficas del
objeto ResultSet
try {
conjuntoResultados.absolute( fila + 1 );
return conjuntoResultados.getObject( columna + 1 );
5
Manual Terico
De Java Netbeans
}
// atrapar excepciones SQLExceptions e imprimir mensaje de
error
catch ( SQLException excepcionSQL ) {
excepcionSQL.printStackTrace();
}
// si hay problemas, devolver objeto cadena vaca
return "";
}
// establecer nueva cadena de consulta para la base de datos
public void establecerConsulta( String consulta )throws SQLException,
IllegalStateException {
// asegurar que la conexin a la base de datos est disponible
if ( !conectadoALaBaseDeDatos )
throw new IllegalStateException( "No hay conexion a la base
de datos" );
// especificar consulta y ejecutarla
conjuntoResultados = instruccion.executeQuery( consulta );
// obtener meta datos para el objeto ResultSet
metaDatos = conjuntoResultados.getMetaData();
// determinar el nmero de filas en el objeto ResultSet
conjuntoResultados.last(); // mover a la
ltima fila
numeroDeFilas = conjuntoResultados.getRow(); // obtener nmero
de fila
// notificar al objeto JTable que el modelo ha cambiado
fireTableStructureChanged();
}
// cerrar objetos Statement y Connection
public void desconectarDeLaBaseDeDatos() {
// cerrar objetos Statement y Connection
try {
instruccion.close();
conexion.close();
}
// atrapar excepciones SQLException e imprimir mensaje de error
catch ( SQLException excepcionSQL ) {
excepcionSQL.printStackTrace();
}
// actualizar estado de conexin a la base de datos
finally {
conectadoALaBaseDeDatos = false;
}
}
} // fin de la clase ResultSetTableModel
Cosas por explicar el en cdigo anterior:
Si tienes dudas respecto a las operaciones hechas con el API de JDBC significa que debes leer esto
primero: Ejemplo Programacin con JDBC
public Class getColumnClass(); con este mtodo obtendremos el tipo de dato de la columna
(Integer, String, Float, etc).
public int getColumnCount(); este mtodo devuelve el nmero de columnas que tendr la tabla.
public String getColumnName(int x); devuelve el nombre de la columna X de la tabla.
public int getRowCount(); este mtodo devuelve el nmero de filas que tendr la tabla.
public Object getValueAt(int f, int c); asigna a la tabla el valor de la celda que se encuentra en la
fila f y en la columna c.
fireTableStructureChanged(); esto le indica al objeto AbstractTableModel que la estructura de la
tabla ha cambiado.
Ahora el cdigo del frame que contiene la tabla:
import java.awt.*;
import java.awt.event.*;
5
Manual Terico
De Java Netbeans
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class MostrarResultadosConsulta extends JFrame {
// controlador JDBC y URL de la base de datos
static final String CONTROLADOR_JDBC = "com.mysql.jdbc.Driver";
static final String URL_BASEDEDATOS = "jdbc:mysql://localhost/ejemplo?
user=root&amp;password=";
// la consulta predeterminada recupera todos los datos de la tabla
autores
static final String CONSULTA_PREDETERMINADA = "SELECT * FROM
datos";
private ModeloTablaResultados modeloTabla;
private JTextArea areaConsulta;
// crear objeto ModeloTablaResultados y GUI
public MostrarResultadosConsulta() {
super( "Mostrando resultados de la consulta" );
// crear objeto ModeloTablaResultados y mostrar tabla de la
base de datos
try {
// crear objeto TableModel para los resultados del a
consulta SELECT * FROM autores
modeloTabla = new ModeloTablaResultados( CONTROLADOR_JDBC,
URL_BASEDEDATOS,
CONSULTA_PREDETERMINADA );
JTable tablaResultados = new JTable(modeloTabla);
getContentPane().setLayout(new BorderLayout());
getContentPane().add( new JScrollPane(tablaResultados) ,
BorderLayout.CENTER );
// establecer tamao de ventana y mostrarla en pantalla
setSize( 500, 250 );
setVisible( true );
} // fin de bloque try
// atrapar la excepcin ClassNotFoundException lanzada por el
// objeto ModeloTablaResultados si no se encuentra el
controlador de la base de datos
catch ( ClassNotFoundException claseNoEncontrada ) {
JOptionPane.showMessageDialog( null,
"No se encontro el controlador de la base de
datos", "No se encontro el controlador",
JOptionPane.ERROR_MESSAGE );
System.exit( 1 ); // terminar la aplicacin
} // fin de bloque catch
// atrapar la excepcin SQLException lanzada por el objeto
ModeloTablaResultados
// si ocurren problemas al establecer la conexin a la base de
datos
// y realizar la consulta en la misma
catch ( SQLException excepcionSQL ) {
JOptionPane.showMessageDialog( null,
excepcionSQL.getMessage(),
"Error en la base de datos",
JOptionPane.ERROR_MESSAGE );
// asegurar que la conexin a la base de datos est cerrada
modeloTabla.desconectarDeLaBaseDeDatos();
System.exit( 1 ); // terminar la aplicacin
}
// desechar la ventana cuando el usuario salga de la aplicacin
// (esta opcin sobrescribe a la opcin predeterminada de
HIDE_ON_CLOSE)
5
Manual Terico
De Java Netbeans
setDefaultCloseOperation( DISPOSE_ON_CLOSE );
// asegurar que la conexin a la base de datos est cerrada
cuando el usuario salga de la aplicacin
addWindowListener(
new WindowAdapter() {
// desconectarse de la base de datos y salir cuando se haya
cerrado la ventana
public void windowClosed( WindowEvent evento ) {
modeloTabla.desconectarDeLaBaseDeDatos();
System.exit( 0 );
}
}
);
} // fin del constructor de MostrarResultadosConsulta
// ejecutar la aplicacin
public static void main( String args[] ) {
JFrame.setDefaultLookAndFeelDecorated(true);
new MostrarResultadosConsulta();
}
} // fin de la clase MostrarResultadosConsulta
Fuente: http://casidiablo.net/consultar-base-datos-java-mostrar-resultados-jtable/
Fuente: http://forospamloco.net/limitar-la-cantidad-de-caracteres-en-un-jtextfield-t193.html
Hay alguna funcin en Java / Netbeans que me devuelva el valor ASCII de un caracter?
char c = 'A';
5
Manual Terico
De Java Netbeans
Fuente: http://mx.answers.yahoo.com/question/index?qid=20091118071319AA4XRtW
Obtener los cdigos ASCII de una cadena de texto
En este ejemplo vamos a ver como obtenemos los cdigos ASCII de una cadena de texto con Java. Para
ello recorreremos los caracteres de la cadena e iremos obteniendo el cdigo. Para ello nos apoyamos en el
mtodo.codePointAt().
El mtodo .codePointAt() devuelve el cdigo ASCII de un carcter en concreto. El carcter ser el que
coincida con el ndice que se pasa como parmetro al mtodo.
Empezamos definiendo la cadena:
String sCadena = "Esto es una cadena de texto";
Ahora empezamos recorriendo la cadena, para ello nos apoyamos en un bucle for y en el mtodo .length(),
el cual nos ayuda a conocer el tamao de la cadena. En el interior del bucle, y apoyndonos en el elemento
de interaccin vamos obteniendo el cdigo ASCII de los caracteres con el mtodo.codePointAt()
for (int x=0;x<sCadena.length();x++)
System.out.println(sCadena.charAt(x) + " = " +
sCadena.codePointAt(x));;
Vemos que utilizamos el mtodo.charAt() para sacar el carcter asociado al cdigo ASCII.
package com.lineadecodigo.java.string;
/**
* @file CodigosASCIICadena.java
* @version 1.0
* @author Linea de Codigo (http://lineadecodigo.com)
* @date 4/enero/2010
* @url http://lineadecodigo.com/java/obtener-los-codigos-ascii-de-una-cadena-de-texto/
* @description Extraer los cdigos ASCII de una cadena de texto
*/
public class CodigosASCIICadena {
public static void main(String[] args) {
String sCadena = "Esto es una cadena de texto";
Fuente: http://cucutaloco.es.tl/Obtener-los-c%F3digos-ASCII-de-una-cadena-de-texto.htm
Obtener codigo ascii de un String
String cadena = "hola";
System.out.println((int) cadena.charAt(0));
int c = 0;
for (int i = 0; i < cadena.length(); i++) {
c += (int)cadena.charAt(i);
}
System.out.println(c);
Fuente: http://www.forosdelweb.com/f45/obtener-codigo-ascii-string-384813/
Cdigo Ascii
No hace falta ningn mtodo para obtener esto. Debes tener en cuenta que el tipo char es un nmero de 0 a
255, simplementes debes hacer un casting, algo como:
char a = 'a';
System.out.println((int)a);
5
Manual Terico
De Java Netbeans
Fuente: http://www.forosdelweb.com/f45/convertir-char-string-180106/
Mtodos de la clase String
Mtodo Descripcin
+ Concatenacin (unin de hilera).Tambin permite concatenar una hilera con un dato numrico o
booleano.
EJEMPLO
1-) String cadena = Universidad " + Tcnica";
Ahora cadena contendr: "Universidad Tcnica"
Cadena += Nacional;
Ahora cadena contiene Universidad Tcnica Nacional
2-) int i = 5;
String resultado = "El valor de i es " + i;
Ahora resultado contiene: El valor de i es 5
length( ) Retorna la cantidad de caracteres que tiene la String
EJEMPLO
1-) String cadena = Universidad Tcnica;
int a = cadena.length();
La variable a contendr 19
int indexOf(String char) Retorna el ndice o posicin donde aparece por primera vez la String o char
que se recibe como parmetro, o un -1 si no la encuentra
EJEMPLO
1-) String cadena = "San Jose";
int posicion = cadena.indexOf("Jose" );
Ahora posicin contiene un 4
int a = cadena.indexOf(o);
Ahora la variable a contiene un 5
Recuerde que la primera posicin es cero.
String replace (char viejoChar, char nuevoChar) Remplaza en la hilera que invoca el mtodo, el
viejoChar por el nuevoChar. Se utiliza para reemplazar caracteres
EJEMPLO
1-) String hilera, cadena = mam";
hilera = cadena.replace(m,p );
Ahora hilera contiene pap y cadena contina teniendo mam.
String replaceAll (String viejaString, String nuevaString) Remplaza en la hilera que invoca al mtodo
la vieja String por la nueva String. Se utiliza para reemplazar subhileras
EJEMPLO
1-) String cadena = Jos Soto";
cadena = cadena.replaceAll(Soto,Sols );
Ahora cadena contiene Jos Sols ya que se modific sobre ella misma
String toLowerCase() Convierte todos los caracteres de la hilera a minscula.
Solo para hileras, no funciona para char.
EJEMPLO
1-) String cadena = "JAVA";
cadena = cadena.toLowerCase();
Ahora cadena contiene java
5
Manual Terico
De Java Netbeans
String toUpperCase() Convierte todos los caracteres de la hilera a mayscula. Solo para hileras, no
funciona para char.
EJEMPLO
1-) String cadena = "java";
cadena = cadena.toUpperCase();
Ahora cadena contiene JAVA
boolean equals(String str): Compara la hilera que invoca al mtodo con la del parmetro. Si son iguales
retorna true y si n, retorna false. Es sensitivo a maysculas y minsculas.
EJEMPLO
1-) String cadena1 = alajuela", cadena2 = Alajuela;
if (cadena1.equals(cadena2)){
out.println(Son iguales);
else
out.println(Son diferentes);
La impresin ser: Son diferentes
boolean equalsIgnoreCase (String str) Compara la hilera que invoca al mtodo con la del parmetro. Si
son iguales retorna true y si n, retorna false. No es sensitivo a maysculas y minsculas.
EJEMPLO
1-) String cadena1 = alajuela";
String cadena2 = Alajuela;
if (cadena1.equalsIgnoreCase(cadena2)){
out.println(Son iguales);
else
out.println(Son diferentes);
La impresin ser: Son iguales
int compareTo(String str1) Compara 2 cadenas y retorna un valor numrico.:
Cero (o): si ambas cadenas son iguales
Un nmero < 0 si la primera hilera es menor a la segunda.
Un nmero > 0 si la primera hilera es mayor a la segunda.
EJEMPLO
String cad1="1234";
String cad2="1334";
valor=cad1.compareTo(cad2);
if(valor==0)ut.println("Son iguales" ;
else
if (valor<0)
out.println("cad1 menor cad2" ;
else
out.println("cad1 mayor cad2" ;
String trim():
Elimina espacios en blanco al principio y al final de la cadena. No elimina los espacios situados entre las
palabras.
EJEMPLO
1-) String cadena = " Programacin 1 ";
cadena = cadena.trim();
Ahora cadena contiene Programacin 1
String substring(int indiceInicial, int indiceFinal) Retorna el segmento de la String entre la posicin
indiceInicial inclusive hasta una posicin anterior a indiceFinal.
EJEMPLO
1-) String cadena = "Desarrollo Orientado a Objetos";
out.println(cadena.substring(11,20));
Impresin: Orientado
char charAt (int indice) Devuelve el carcter que ocupa la posicin indicada por el ndice.
EJEMPLO
1-) String cadena = "Polimorfismo";
out.println(cadena.charAt(4));
Impresin : m
2-) char caracter = cadena.charAt(7);
5
Manual Terico
De Java Netbeans
/*
* NewJFrame3.java
*
* Created on 06/06/2011, 01:34:57 AM
*/
package mariscal.pruebas;
5
Manual Terico
De Java Netbeans
/**
*
* @author Administrador
*/
public class NewJFrame3 extends javax.swing.JFrame {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3"
}
));
jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
jScrollPane1.setViewportView(jTable1);
5
Manual Terico
De Java Netbeans
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame3().setVisible(true);
}
});
}
Fuente: http://www.lawebdelprogramador.com/foros/Java/1269731-Ayuda_JTable_en_Netbeans.html
Java: JTable
Las tablas nos permiten tener tabulados de informacin que se vean organizados y que
sean de utilidad para los clientes. Las tablas son muy utilizadas en programas similares a
excel, donde se deben tener rejillas de informacin; o en programas de administracin
donde pueden haber varios productos que tienen un conjunto de caractersticas, o en
programas de ventas, donde pueden haber varios vendedores con nmero de ventas y con
total vendido.
Para agregar una tabla en NetBeans selecciona el icono de tabla de la paleta (que
regularmente se encuentra a la derecha) . Una vez que lo hayas seleccionado
agrgalo a la ventana principal. El JTable utiliza un DataModel para representar sus
datos, de la misma manera que varios otros componentes como JList.
Creando un modelo esttico
El modelo nos permite indicarle a la tabla qu informacin va a contener. Si slo
queremos presentar informacin esttica (que nunca cambia) al cliente entonces podemos
usar un modelo esttico, para hacer esto vamos a hacer click en el atributo model que se
encuentra en las propiedades.
Una vez que hicimos click aparecer una pantalla en la que podemos editar cmo
queremos que se vea la tabla. En esta pantalla podemos seleccionar el nemro de
columnas, el nombre de las columnas e incluso podemos agregar algunos datos.
5
Manual Terico
De Java Netbeans
En la pantalla anterior podemos ver cmo manejar el nmero de columnas (con los
botones de Insert, Delete o con los botones de +, -) y tambin podemos ver una rejilla
donde podemos poner el ttulo que aparece en la columna, el tipo de dato que va a
guardar y si se puede editar o no.
Con esto podemos crear una tabla esttica que siempre va a iniciar con los mismos datos.
Creando un modelo dinmico
La mayora de las veces un usuario no va a querer una tabla esttica (en la que aunque pueda editar los
valores no se muestren los valores que se haban guardado previamente). Es por esto que es necesario crear
un modelo dinmico. Para poder crear un modelo dinmico es necesario implementar la interfaz
TableModel que nos obliga a sobrecargar un gran nmero de mtodos:
getColumnClass(): Es un mtodo que nos permite saber qu clase tiene guardada cada
columna, esto es para que sean ms fciles de pintar para java.
getColumnCount(): Es un mtodo que nos permite saber cuntas columnas tiene la tabla.
getColumnName(): Es un mtodo que nos permite saber el encabezado de la tabla para una
cierta columna.
getRowCount(): Es un mtodo que nos permite saber cuntas filas tiene la tabla.
getValueAt(): Es un mtodo que nos devuelve el valor que se encuentra en la posicin pasada
como parmetro.
isCellEditable(): Es un mtodo que nos devuelve verdadero si la celda puede ser
modificada, o falso en caso contrario.
setValueAt(): Es un mtodo que nos permite cambiar el valor que se encuentra en la posicin
pasada como parmetro mediante cdigo (el usuario puede cambiar los datos dependiendo del mtodo
isCellEditable()).
getValueAt(): Es un mtodo que nos devuelve el valor que est guardado en la celda pasada
como parmetro, este valor va a ser de la clase que indica getColumnClass() para esa columna.
5
Manual Terico
De Java Netbeans
Adems de todos los mtodos anteriores, la interfaz TableModel tiene un par de mtodos para manejar
eventos (como por ejemplo, que el usuario haga click, que edite una celda). Estos mtodos involucran
agregar cdigo a nuestra clase que cuando modifique algn valor o que agregue nuevos datos tenga que
disparar eventos. Este cdigo, aunque no es muy complicado, no tendra ninguna utilidad (a menos que
vayamos a escribir una manera de deshacer acciones o algo similar), sin embargo como tenemos que
implementar TableModel tendramos que implementarlos. Por suerte Java cuenta con un modelo ya
implementado (el que utilizan todas las tablas al ser creadas) que podemos utilizar para no implementar
estos mtodos, entonces, en lugar de implmentar la interfaz TableModel vamos a extender la clase
DefaultTableModel que ya implementa la interfaz anterior.
Implementando el modelo dinmico
Normalmente las tablas slo crecen en una direccin (hacia abajo, aumentando el nmero
de filas). Por ejemplo, en el reporte de empleados, es probable que contratemos o
despidamos empleados, por lo que vamos a tener que agregar ms filas, sin embargo sera
raro que apareciera un nuevo atributo que quisiramos manejar del empleado (y ms raro
an que el cliente pudiera modificar el programa de tal manera que lo agregue).
Entonces, como la mayora de las tablas crecen en una sola dimensin(slo aumenta el
nmero de filas) vamos a implementar un modelo en el que utilizando un ArrayList que
contiene arreglos vamos a manejar el crecimiento de la tabla (el ArrayList puede crecer,
pero los arreglos no).
El ArrayList va a representar las filas de la tabla, y va a contener arreglos, que representan las
columnas.
Nuestro modelo debe tener alguna manera de almacenar los datos (ya vimos cmo vamos
a resolver este problema) y adems debe contar con variables de control que nos faciliten
5
Manual Terico
De Java Netbeans
la tarea de saber cul es el nombre de las columnas, qu tipo de dato guarda cada
columna (importante para poder guardar nmeros o booleanos) y si la columna es
editable (la mayora de las veces este parmetro va a ser verdadero, pero podran haber
ocasiones en que necesitramos que fuera falso).
private ArrayList<Object[]> data;
private int numColumns;
private String columnNames[];
private Class classes[];
private boolean editable[];
El constructor que recibe todos los parmetros debe de crear un tabla de datos en blanco
y debe de leer los parmetros que manda el usuario. Como vamos a tener varios
constructores que reciban diferente nmero de parmetros debemos construir un mtodo
que nos permita iniciar el objeto y llamarlo desde todos los constructores, el mtodo sera
algo similar a:
private void initComponents(String columnNames[], Class classes[],
boolean editable[])
throws IllegalArgumentException {
if (columnNames.length != classes.length || classes.length !=
editable.length)
throw new IllegalArgumentException("The arrays passed as
parameters must be of the same size");
this.numColumns = columnNames.length;
this.columnNames = columnNames;
this.classes = classes;
this.editable = editable;
}
La mayora de los mtodos son simples getters y setters (por ejemplo getRowCount()
slo debe regresar el tamao de data con data.size(), getValueAt() slo debe
obtener el valor de la celda con data.get(row)[col]), por lo que estos mtodos no van
a ser consultados con ms detenimiento. Sin embargo, para permitir que la tabla pueda
crecer debemos crear mtodos que nos permitan agregar o quitar filas. Estos mtodos
deben agregar o quitar arreglos de objetos de la lista de datos. Es decir:
public void addRow() {
int numRows = data.size();
this.fireTableRowsInserted(numRows, numRows+1);
}
Y para remover va a ser muy similar:
@Override
public void removeRow(int row) {
data.remove(row);
this.fireTableRowsDeleted(row, row);
}
En los mtodos anteriores no est sucediendo mucho que no sepamos, excepto por los
mtodos fireTableRowsInserted() y fireTableRowsDeleted(). Estos dos mtodos
le indican a la tabla (y la tabla se encarga de comunicarle a todos los componentes que
dependan de ella) que se agregaron o quitaron filas. Si no hiciramos esta llamada
5
Manual Terico
De Java Netbeans
entonces no veramos los cambios hasta que modifiquemos los datos en la lista, que sera
cuando la tabla se dara cuenta de que el modelo cambi.
Otro mtodo que quizs sera importante implementar sera uno que nos permitiera
agregar filas con datos, ya que muchas veces vamos a leer los datos de un archivo y
vamos a querer construir la tabla.
public void addRow(Object[] row) {
int numRows = data.size();
data.add(row);
this.fireTableRowsInserted(numRows, numRows+1);
}
Quizs tambin sera prudente crear un constructor que reciba una matriz de datos y de
ah obtenga todos los datos para crear la tabla.
Usando el modelo
Construir el modelo es un proceso un poco abstracto y muchas veces no sabemos cmo
estn sucediendo las cosas sino hasta que lo comenzamos a usar, para poder usar nuestro
modelo vamos a crear una clase de prueba que tenga una ventana con una tabla y dos
botones de la siguiente manera:
5
Manual Terico
De Java Netbeans
tblEmployees.setModel(model);
}
Como podemos ver, el cdigo est creando tres arreglos, el primero tiene los nombres de
las columnas (son tres columnas: nombre, edad y telfono), el segundo arreglo es un
arreglo de clases, que nos dice de qu tipo va a ser cada columna. Podemos utilizar
cualquier clase de Java, pero regularmente queremos utilizar String, Integer, Double,
Float o Boolean, que son las clases para las que ya est creado un renderer y por lo tanto
no tenemos que preocuparnos por eso. Fjate que despus del nombre de la clase
ponemos .class para que obtenga la clase. El ltimo arreglo es un arreglo de boolean y
nos dice si las columnas van a ser editables (en la mayora de los casos s).
Ahora vamos a implementar el botn para agregar filas:
private void btnAddRowActionPerformed(java.awt.event.ActionEvent
evt) {
model.addRow();
}
Como nuestro modelo est bien implementado esto fue sencillsimo, ahora vamos a
implementar el botn que borra las filas seleccionadas:
private void btnRemoveRowActionPerformed(java.awt.event.ActionEvent
evt) {
int rows[] = tblEmployees.getSelectedRows();
model.removeRows(rows);
}
Igual de sencillo. Una vez que hayamos hecho todo esto nuestro programa debe permitir
agregar y quitar filas y poner los datos que querramos adentro de las filas.
Guardar datos
Una vez que los usuarios tengan la oportunidad de modificar la tabla van a agregar datos
y van a querer guardar esos datos (imaginen que cada que abran excel tienen que volver a
poner todos los datos que haban puesto la vez anterior). Para guardar los datos vamos a
crear un mtodo en el modelo que se encargue de poner los datos en una matriz (para que
sea ms fcil de manejar) y despus, utilizando este mtodo vamos a utilizar un par de
ciclos para guardar los datos en un archivo.
En el modelo vamos a agregar el siguiente mtodo:
public Object[][] getDataMatrix() {
int numRows = getRowCount();
int numCols = getColumnCount();
Object matrix[][] = new Object[numRows][numCols];
return matrix;
}
5
Manual Terico
De Java Netbeans
Y dentro de la interfaz grfica hay que crear un nuevo botn que sea el que guarda y
debemos poner el siguiente cdigo:
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt)
{
try {
PrintWriter fileOut = new PrintWriter(new
FileWriter("out.csv"));
El mtodo anterior debera mostrar una ventana para seleccionar el archivo y debera de
proporcionar informacin ms relevante en los errores, pero para este ejemplo es
suficiente para ver que los datos se guardan. Una vez que hagamos esto se va a crear un
archivo llamado out.csv que puede ser abierto por excel.
Fuente: http://www.magusoft.net/neotrials/pages/java/jtable.html
Cmo seleccionar una fila de un JTable de Java
A veces nos vemos en la necesidad de seleccionar o resaltar mediante cdigo una fila de un JTable, ya sea
porque necesitamos realizar una bsqueda en la tabla o por cualquier otro motivo. Si el JTable se encuentra
dentro de un JScrollPane, las barras de desplazamiento se deben mover automticamente para que se vea
la fila que se seleccion.
Para realizar sta tarea tenemos el mtodo changeSelection de la clase JTable, el cual cuenta con 4
parmetros: rowIndex, columnIndex, toggle y extend; los dos primeros son dos nmeros enteros que
indican la fila y columna de la celda, mientras que toggle y extend son booleanos que sirven para indicar si
queremos seleccionar una fila, un rango de filas o varias filas.
Para entender mejor el funcionamiento de ste mtodo realizaremos un ejemplo prctico, que consistir en
realizar la bsqueda de un elemento qumico dentro de una tabla. Es decir tendremos una tabla con cierta
cantidad de elementos qumicos, para buscar un determinado elemento deberemos introducirlo dentro del
campo de texto respectivo, seguidamente deberemos presionar el botn Buscar e inmediatamente se
resaltar la fila en la cual se encuentra el dato que estbamos buscando (si fue encontrado).
La interfaz grfica quedara como sigue:
5
Manual Terico
De Java Netbeans
Como vemos en la anterior imagen buscamos el elemento "Decano" que se encuentra a lo ltimo de la
tabla, por lo que las barras de desplazamiento se movieron automticamente hasta hacer visible la fila
donde se encuentra el dato.
Si realizamos una nueva bsqueda, la fila seleccionada anteriormente se deseleccionar y se seleccionar la
fila donde se encuentra el dato de la ltima bsqueda, como podemos ver en la siguiente imagen:
El cdigo que va dentro del botn Buscar para realizar este programa es el siguiente:
private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {
5
Manual Terico
De Java Netbeans
Del anterior cdigo podemos observar en la lnea de cdigo 7 que los parmetros toggle y extend del
mtodo changeSelection deben estar en false, para trabajar de la manera que nos propusimos en el
ejemplo: mantener seleccionada solamente una fila por cada bsqueda.
Sin embargo puede haber otras ocasiones en las que se necesita seleccionar ms de una fila a la vez, para
ello pueden "jugar" con el cdigo de ejemplo que les estoy pasando, cambiando los valores de los
parmetros toggle y extend para poder visualizar mejor qu "papel juegan" dentro del mtodo.
Les recomiendo leer la documentacin oficial del mtodo selectionChange de la clase JTable, donde
encontrarn una breve explicacin sobre el mismo y sus parmetros.
No se preocupen que no me olvido de dejarles el cdigo fuente programado en Java utilizando NetBeans
6.5 para que puedan practicar. Espero les haya sido de utilidad, cualquier acotacin o aporte ser
bienvenido, hasta la prxima.
Fuente: http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html
Desplegar datos en jtable (netbeans)
Puedes en un boton o funcion colocar esto:
Cdigo:
Object[][] dtPer;
String[] columNames = {"aleatorio","hora de llegada","hora de
entrada","tiempo de servicio","hora de salida","longitud de la cola"};
dtPer = getDatos();
tabla.setModel(datos);
y la funcion getDatos() seria:
Cdigo:
public Object [][] getDatos(){
int registros = 0;
try{
PreparedStatement pstm =
con.getConnection().prepareStatement("SELECT count(1) as total FROM
horario");
ResultSet res = pstm.executeQuery();
res.next();
registros = res.getInt("total");
res.close();
}catch(SQLException e){
System.out.println(e);
}
5
Manual Terico
De Java Netbeans
data[i][1] = v2;
data[i][2] = v3;
data[i][3] = v4;
data[i][4] = v5;
data[i][5] = v6;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return data;
}
Fuente: http://www.forosdelweb.com/f45/desplegar-datos-jtable-netbeans-860278/
Extraer datos de un jtable a un jtextfield
Para obtener un valor de una tabla existe un metodo getValueAt(fila, columna) un ejemplo seria asi
Integer id = (Integer) tabla.getValueAt(tabla.getSelectedRow(), 0);
luego harias el txt.setText(Integer.toString(id));
Fuente: http://www.forosdelweb.com/f45/auxilio-extraer-datos-jtable-jtextfield-624066/
Customizando un JTable, hgalo usted mismo en 5 simples pasos
El objetivo de este artculo es modificar un JTable para que quede totalmente distinto y mejorado. Si no les
sirve tal como queda al final, no se preocupen ya que pueden sacar buenas ideas de los pasos intermedios.
Empecemos, el objetivo es tranformar:
En
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Este es el killer step de la idea, donde la mayoria toma aire, cuenta hasta 10 y tira la
compu al patio no sin antes recordar a la madre de los desarrolladores de sun y desear
que les pase un Focus por arriba.
Lo que tenemos que hacer es crear una clase que ser utilizada para renderizar las celdas,
en ella vamos a escribir como se va a mostrar cada una y de que forma. Parece
sumamente complicado, salvo que tenemos un As bajo la manga, los jLabel.
El jLabel si tiene algo de bueno es que podemos mostrar un icono/imgen en l, entonces
sera buena idea poder hacer que cada celda del JTable sea un jLabel.
El cdigo de esta clase se los dejo a continuacin y comentado, luego hago unas breves
acotaciones:
/**
* Descripcin: Un renderizador de celdas de un JTable que pone
* un jLabel en cada una de las celdas para que se pueda poner
* un icono/imagen
* @version 1.0
* @author Iuga
* @cambios
* @todo
*/
/**
* Este mtodo es para que pinte el fondo del JLabel cuando
* lo seleccionamos para que no quede en blanco, desentonando
* con el resto de las celdas que no son JLabel
*/
public void fillColor(JTable t,JLabel l,boolean isSelected )
{
if(isSelected)
{
l.setBackground(t.getSelectionBackground());
l.setForeground(t.getSelectionForeground());
}
else
{
l.setBackground(t.getBackground());
5
Manual Terico
De Java Netbeans
l.setForeground(t.getForeground());
}
}
5
Manual Terico
De Java Netbeans
Todo lo bueno tiene fin, y este fue el nuestro, ya con esto tenemos nuestro JTable
modificado completamente y si seguimos bien los pasos deberamos tener algo como
esto:
Lo que sigue es llenar la tabla con datos a nuestro antojo, poner o sacar columnas, simplemente modificarla
a nuestro antojo.
Fuente: http://hackelare.wordpress.com/2010/09/23/customizando-un-jtable-hagalo-usted-mismo-en-5-
simples-pasos-leer-con-la-voz-de-sprayette/
Tablas en netbeans
Muchas veces me han preguntado, oye como se usan las tablas en netbeans? o como puedo hacer dinmica
una tabla en java?, y la mas frecuente como puedo hacer dinmica una tabla con netbeans? la cual es la
misma que la anterior, por lo que decid escribir cada paso de lo que yo normalmente hago cuando manejo
tablas, no se si sea lo mas correcto, pero a mi me funciona:
Aqu supondr que sabemos usar netbeans hasta el punto en el que se inserta una tabla, es decir cuando
podemos ver algo como esto:
5
Manual Terico
De Java Netbeans
Ya teniendo la tabla creada se pueden modificar sus propiedades de forma grfica dando click-derecho
sobre la tabla que creamos
5
Manual Terico
De Java Netbeans
Aparecer un cuadro de dialogo que describe las propiedades de la tabla, en la primera pestaa "modelo de
la tabla" se indica de donde se obtendrn los datos de la tabla, la verdad, de esa pestaa no se casi nada si
embargo si nos pasamos a la pestaa que dice Columnas 1
5
Manual Terico
De Java Netbeans
Podemos ver las propiedades de cada columna 2 en esta parte podemos cambiar el tipo de el valor que
aceptara la tabla, si es editable o si se puede cambiar el tamao de la celda y por supuesto el nombre de la
columna y los nmeros 3,4,5,6 en la seleccin de modelo indican la forma en que se podrn seleccionar las
celdas de la tabla; a continuacin una descripcin de lo que hacen:
3 solo permite la seleccin de filas
Si se selecciona 4 solo se podr seleccionar una sola celda
Si se selecciona 5 se podr seleccionar mltiples celdas, pero estas debern ser vecinas
Y por ultimo si se selecciona 6 se podr seleccionar celdas sin importar que sean vecinas o no
5
Manual Terico
De Java Netbeans
Los tipos que se pueden seleccionar en las tablas son los que se muestran en la imagen, lo cual puede ser
til para recabar datos con formato, en lo personal, no me gusta usar las jtables para recabar datos porque
siempre se tiene un problema al insertar el ultimo dato, pero de igual forma al definir el tipo del objeto de
una columna esta no aceptara que se inserte otro tipo de valor y en adicin, al seleccionar boolean el valor
de las columnas cambiaran por un checkbox donde la palomita significa true, y vaci false
5
Manual Terico
De Java Netbeans
Despus de cambiarle el formato a la tabla todo lo que quieras, podemos seguir con lo dinmico, ahhh la
pestaa de filas o rows solo permite agregar o quitar renglones en la tabla, pero bueno eso no nos sirve si lo
que queremos es ponerlos dinamicamente.
Esto de formatear la tabla servir ahora tenemos una tabla que solo acepta ciertos tipos de datos, con todos
los renglones en blanco.
Estas tablas, sin tener que ver con netbeans se manejan de forma diferente de la que muchos pensamos, la
jTable es mas bien una versin grfica, y sus datos provienen de un TableModel y ese es el que se necesita
saber utilizar bueno, en si el TableModel no, sino un hijo de este, el DefaultTableModel, el cual permite
manipularlo fcilmente. solo necesitamos pues sacarlo de ah, ya que si revisas el cdigo que genero el
netbeans en la funcin de initComponents dice algo como
new jtable(new DefaultTableModel{cosas raras de netbeans});
En las cosas raras de netbeans se desarrollan todas las caractersticas que seleccionamos
grficamente para aplicar a la tabla, entonces, despus de initComponets sacamos el objeto
del modelo de la tabla, lo casteamos y lo guardamos en un atributo de nuestra clase.
private javax.swing.table.DefaultTableModel modelo;//atributo de
nuestra clase
public Inicio() {//este es el constructor de la tabla
initComponents();
modelo =
(javax.swing.table.DefaultTableModel)tabla.getModel();//con esta linea
obtenemos el modelo
tabla.setModel(modelo);//con esta instruccion se pueden cambiar
las caracteristicas de la tabla por otro modelo
}
5
Manual Terico
De Java Netbeans
Main.java
Cmo utilizar un JList?
Construir un JList es muy sencillo si no queremos que sea dinmico, es decir: si queremos que el usuario
no pueda agregar ms items. Para hacerlo basta con declarar un arreglo de String y pasarlo como parmetro
al constructor del JList.
5
Manual Terico
De Java Netbeans
Para hacer que el JList tenga una barra de desplazamiento es necesario utilizar una clase auxiliar llamada
JScrollPane. Esta clase se va a detallar en algn trial ms adelante, pero por el momento se debe de
construir como se ve en la foto.
Es importante notar que el JScrollPane es el que se aade a la forma y no la lista en si. Esto es porque el
JScollPane contiene a la lista.
Para escuchar eventos en
una lista (por ejemplo para
saber cuando se seleccion
un elemento) es necesario
importar un nuevo tipo de
escuchador de eventos.
Primero que nada tenemos
que importar la librera:
javax.swing.event.* despus
la clase tiene que
implementar ListSelection-
Listener y por ltimo
tenemos que hacer un
mtodo valueChanged() que recibe un objeto ListSelectionEvent.
Dentro de este mtodo podemos utilizar la variable ListSelectionEvent para saber cul fue el JList que
mand llamar el mtodo mediante el mtodo getSource() que es igual que el que habamos utilizado hasta
ahora.
Un paso ms all
Una parte importante de las listas es el poder
agregar y eliminar registros. Para hacer esto
necesitamos crear un objeto llamado
DefaultListModel e iniciar el JList con este
objeto en vez de con el arreglo de String como
habamos visto en la primera parte. Como
podemos ver aqui podemos agregar elementos
al DefaultListModel utilizando el mtodo
addElement() que recibe un String con el
elemento a aadir.
Una vez que ya tengamos el DefaultListModel con todos los elementos que queramos es hora de crear la
lista con el constructor que recibe el DefaultListModel. Recuerda que la variable listModel que estamos
utilizando en el cdigo es un objeto tipo DefaultListModel.
Una vez que ya creamos la lista podemos
utilizar nuestro Default-ListModel para
eliminar los eleven-tos que queramos, si
sabemos el n-dice en que lugar fueron
agregados (que es la misma posicin en la
que aparecen en el JList) con el mtodo
removeElementAt() que recibe ni-
camente un nmero que es el ndice a
borrar. Tambin hay un mtodo del JList
que nos permite saber qu elemento est seleccionado. El mtodo getSelectedIndex() nos devuelve el
ndice del elemento que est seleccionado en ese momento.
Entonces, para poder borrar un elemento de un JList podemos utilizar juntos el mtodo
para borrar el registro en un ndice y el mtodo que nos devuelve el ndice que est
actualmente seleccioando, con lo que podemos borrar el elemento que seleccion el
usuario. Si nuestro JList permite elegir ms de un elemento entonces el mtodo
getSelectedIndex() no funciona, para leer un poco ms acerca de cmo manejar listas
donde se puedan manejar multiples selecciones consulten la clase Main.java que se les da
al principio.
5
Manual Terico
De Java Netbeans
Fuente: http://foro.chuidiang.com/java-j2se/jtable-no-editable/
jTable y su "Modelo"
Continuando con las tablas en Java, vamos a ver como crear las tablas y manejarlas, en la entrada de
"Tablas Swing" explico un poco del tema, pero en esta entrada explicare mas del tema y date ms tips. Para
evitarnos problemas utilizaremos un "Modelo" para nuestra tabla, como funciona esto?, la verdad que
explicarlo es medio enredado, as que mejor una imagen:
Bsicamente es crear la tabla, cargarle el modelo y agregar la data, esto se hace con la finalidad de editar el
modelo que es mas fexible para utilizar solo la tabla como una especie de panel el cual contendra los datos,
en realidad lo que editamos es el modelo, en otras palabras es como hacer galletas, el molde es nuestro
modelo, la data es la masa y la galleta es la tabla.
5
Manual Terico
De Java Netbeans
Quedando claros en esto (pienso yo) vamos con algunos truquillos importantes e
imprecindibles. Para crear el modelo y agregarselo a la tabla.
DefaultTableModel modelo = new DefaultTableModel();
JTable tabla = new JTable(modelo);
Agregar columnas
modelo.addColumn("columna");
Agregar datos
Object [] filas = new Object[2];
filas[0] = "dato columna 1";
filas[1] = "dato columna 2";
modelo.addRow ( filas );
Borrar datos
modelo.removeRow(FILA);
Modificar
modelo.setValueAt ("nuevo dato", fila, columna);
Obtener el valor donde se hace click.
public void mouseClicked(MouseEvent e) {
int fila = tabla.rowAtPoint(evt.getPoint());
int columna = tabla.columnAtPoint(evt.getPoint());
if ((fila > -1) && (columna > -1))
System.out.println(modelo.getValueAt(fila,columna));
}
Hacer que la celda no se edite
public boolean isCellEditable (int row, int column){
if (column == 3)
return true;
return false;
}
Cambiar el tipo de dato
public Class getColumnClass(int columna) {
if (columna == 0) return Boolean.class;
if (columna == 1) return Integer.class;
return Object.class;
}
Agregarle un Scroll
JTable tabla = new JTable();
JScrollPane scroll = new JScrollPane(tabla);
JTable tabla = new JTable();
JScrollPane scroll = new JScrollPane();
scroll.setViewportView(tabla);
Fuente: http://carlitoxenlaweb.blogspot.com/2010/05/jtable-y-su-modelo.html
import javax.swing.table.DefaultTableModel;
/**
*
* @author whyem
*/
public class CustomDefaultTableModel extends DefaultTableModel{
/**
* Sobreescribe el mtodo isCellEditable de DefaultTableModel,
* para que las celdas no sean editables.
5
Manual Terico
De Java Netbeans
*
* @param row
* @param column
* @return
*/
@Override
public boolean isCellEditable (int row, int column)
{
return false;
}
Fuente: http://bufferdecodigo.blogspot.com/2011/11/java-celdas-no-editables.html
Pasar datos en Jframes
//agrgale "getters" a la clase Segundario, por ejemplo:
Fuente: http://es.answers.yahoo.com/question/index?qid=20090929081101AAblmTu
Cmo hacer un JTable no editable?
Puedes utilizar un TableModel.
Definir una clase como esta:
public class MyModel extends AbstractTableModel {
//not necessary
}
JTable myTable = new JTable();
myTable.setModel(new MyModel());
5
Manual Terico
De Java Netbeans
table.setModel(tableModel);
O
//instance table model
DefaultTableModel tableModel = new DefaultTableModel() {
@Override
public boolean isCellEditable(int row, int column) {
//Only the third column
return column==3;
}
};
table.setModel(tableModel);
Fuente: http://stackoverflow.com/questions/1990817/how-to-make-a-jtable-non-editable
5
Manual Terico
De Java Netbeans
Fuente: http://forodejava.com/showthread.php/631-Pasar-Datos-de-un-jDialog-a-otro-jDialog
Java - Diferencia entre JFrame Form y JDialog Form
Para llamar a un JDialog Form: new menu.pPrincipal(new java.awt.Frame(),true).setVisible(true);
Para llamar a un JFrame Form: new menu.pPrincipal().setVisible(true);
Fuente: http://www.lawebdelprogramador.com/foros/Java/967634-
Diferencia_entre_JFrame_Form_y_JDialog_Form.html
JFormattedTextField y MaskFormatter
Si bien dentro de las aplicaciones bajo swing (java) podemos utilizar un componente como el JTextField
para capturar una entrada de texto. Pero que sucede si esta entrada debe seguir un formato especfico? o
posee un tamao obligatorio al cual debe llegar? Claros ejemplos de esto son al querer capturar un nmero
de telefno o un nmero de cdula (DNI).
5
Manual Terico
De Java Netbeans
Para ello se puede utilizar un componente conocido como JFormattedTextField. Al que podemos indicar el
formato de nuestra entrada. Lo que tenemos que hacer es crear una instancia de la Clase MaskFormatter en
base a un patrn y este enviarlo en el constructor del JFormattedTextField.
MaskFormatter patron = new MaskFormatter(#########-#);
JFormattedTextField campoEntrada = new JFormattedTextField(patron);
y listo nuestra entrada ser validada, en este caso solo para nmeros.
Si utilizamos NetBeans, deberemos colocar una instancia de la clase AbstractFormatterFactory en la
propiedad FormatterFactory del elemento grfico.
new javax.swing.JFormattedTextField.AbstractFormatterFactory(){
public javax.swing.JFormattedTextField.AbstractFormatter
getFormatter(javax.swing.JFormattedTextField tf) {
try {
return new javax.swing.text.MaskFormatter("########.##");
} catch(java.text.ParseException pe) {
pe.printStackTrace();
}
return null;
}
}
Resulta muy til en varias ocaciones.
Fuente: http://qmarqeva.wordpress.com/2009/06/15/jformattedtextfield-y-maskformatter/
Ejemplos de uso del JFormattedTextField
El JFormattedTextField es un componente java un paso ms evolucionado que un JTextField normalito.
El JTextField permite al usuario meter texto. Cuando desde nuestro cdigo le pedimos el contenido, nos
devuelve el texto introducido por el usuario como String. Cuando desde cdigo le decimos lo que
queremos que muestre, debemos pasarle un String. El JTextField, adems, no hace ningn tipo de
comprobacin sobre el texto.
El JFormattedTextField da un paso ms all. Aunque el usuario mete un texto, el JFormattedTextField
lo convierte a la clase que nosotros queramos (un Integer, Float, Date o incluso una clase nuestra propia).
Cuando queramos pasarle algo, le podemos pasar directamente cualquiera de estas clases y l se encarga de
la conversin a texto para mostrar.
JFormattedTextField para editar Integer
5
Manual Terico
De Java Netbeans
Para editar cualquier tipo bsico de java, estilo Integer, Float, Double, Date, etc, basta
con llamar al mtodo setValue() del JFormattedTextField pasndole uno de estos tipos
de datos, o bien pasrselo en el constructor.
Por ejemplo, para Integer, nos bastara con cualquiera de los dos casos siguientes:
JFormattedTextField textField1 = new JFormattedTextField (new
Integer(3));
// o bien ....
JFormattedTextField textField2 = new JFormattedTextField ();
textField2.setValue(new Integer(3));
Con esto ya tenemos un editor que nos permite recoger Integer directamente cuando el usuario lo edite
Integer valor = textField1.getValue();
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
Ya est listo. Nuestro editor slo admite nmeros de dos cifras enteras y dos decimales y
no nos deja escribir otra cosa. Los mtodos getValue() y setValue() devuelven y admiten
Floats.
Podemos usar el MaskFormatter con cualquier tipo de dato que:
Tenga un constructor con String. El MaskFormatter para construir el dato llamar al constructor
pasndole el String recogido en el JFormattedTextField.
El mtodo toString() devuelva algo que cuadre con el patrn que hemos puesto.
JFormattedTextField con mscara para nuestra propia clase.
El MaskFormatter nos vale tambin para la clase Date. El problema es que debemos
restringirnos a los formatos de texto que entiende Date en su constructor con String, que
no son precisamente bonitos ni cmodos para introducir un usuario.
Si queremos usar MaskFormatter con un formato distinto para Date o bien usar
MaskFormatter con una clase nuestra, debemos hacer algo parecido a lo que hicimos
para poder usar nuestras propias clases, pero heredando de MaskFormatter en vez de
heredar de JFormattedTextField.Abstract-Formatter.
Por ejemplo, supongamos que queremos un editor de Fecha hora en este formato
"dd/mm/yy hh:mm:ss" y que no queremos que nos dejen escribir nada incorrecto.
Tenemos que hacernos nuestro propio MaskFormatter heredando del original y
redefiniendo los mtodos de conversion de Date a String y de String a Date
/** Mascara para fecha/hora a nuestro gusto */
class FormatoFecha extends MaskFormatter
{
/** Se construye con el patrn deseado */
public FormatoFecha() throws ParseException
{
// Las # son cifras y representa "dd/mm/yy hh:mm:ss"
super ("##/##/## ##:##:##");
}
5
Manual Terico
De Java Netbeans
Fuente:
http://www.chuidiang.com/java/ejemplos/JFormattedTextField/EjemplosJFormattedTextField.php
5
Manual Terico
De Java Netbeans
});
Fuente:
http://grupos.emagister.com/debate/convertir_a_mayusculas_en_jtextfield_en_netbeans/6709-
719070
Fuente: http://www.java2s.com/Tutorial/Java/0040__Data-Type/Formatadateintoddmmyyyy.htm
Ingresar la fecha
suponiendo que tu textfield se llama fieldFecha:
TextField fieldFecha;
. . . . .
Fuente: http://mx.answers.yahoo.com/question/index?qid=20090829105856AA1huan
Convirtiendo Date a String / String a Date
Podemos convertir un objeto fecha a String de varias maneras. Cada manera es un tipo de formato
establecido por el JVM instalado en nuestro computador. Consideremos este ejemplo:
Date d1 = new Date();
DateFormat[] dfa = new DateFormat[6];
dfa[0] = DateFormat.getInstance();
dfa[1] = DateFormat.getDateInstance();
dfa[2] = DateFormat.getDateInstance(DateFormat.SHORT);
dfa[3] = DateFormat.getDateInstance(DateFormat.MEDIUM);
dfa[4] = DateFormat.getDateInstance(DateFormat.LONG);
dfa[5] = DateFormat.getDateInstance(DateFormat.FULL);
5
Manual Terico
De Java Netbeans
09/02/2009
9 de febrero de 2009
lunes 9 de febrero de 2009
Notemos el resultado del formato obtenido por DateFormat.getInstance(). Es toda la fecha en
formato corto, adems de la hora. Mientras que si obtenemos el formato con DateFormat.getDate-
Instance() la fecha se muestra en formato medio (Podemos consultar la configuracin del sistema
operativo referido al formato de fechas). Tambin podemos ver los dems formatos: SHORT, MEDIUM,
LARGE y FULL.
De la misma manera podemos convertir de String a objeto java.util.Date. Aqu muestro las diferentes
maneras, de diferentes cadenas:
DateFormat df = DateFormat.getDateInstance();
Date d = df.parse("09/02/2009");
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
Date d = df.parse("09/02/09");
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
Date d = df.parse("09/02/09");
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
Date d = df.parse("9 de febrero de 2009");
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
Date d = df.parse("lunes 9 de febrero de 2009");
Fuente: http://www.apuntesdejava.com/2009/02/convirtiendo-date-string-string-date.html
System.out.println("getInstance()=" + dfDefault.format(fecha));
System.out.println("getDateInstance()=" +
dfDateInstance.format(fecha));
System.out.println("getDateInstance(DateFormat.SHORT)=" +
dfDateShort.format(fecha));
5
Manual Terico
De Java Netbeans
System.out.println("getDateInstance(DateFormat.MEDIUM)=" +
dfDateMedium.format(fecha));
System.out.println("getDateInstance(DateFormat.LONG)=" +
dfDateLong.format(fecha));
System.out.println("getDateInstance(DateFormat.FULL)=" +
dfDateFull.format(fecha));
try {
Date fecha2 = dfDateMedium.parse("27/03/1976");
System.out.println("Parsed:" + fecha2);
} catch (ParseException ex) {
ex.printStackTrace();
}
}
}
El resultado para este cdigo, en mi caso, es el siguiente:
getInstance()=22/04/09 11:12 AM
getDateInstance()=22/04/2009
getDateInstance(DateFormat.SHORT)=22/04/09
getDateInstance(DateFormat.MEDIUM)=22/04/2009
getDateInstance(DateFormat.LONG)=22 de abril de 2009
getDateInstance(DateFormat.FULL)=mircoles 22 de abril de 2009
Parsed:Sat Mar 27 00:00:00 COT 1976
Fuente: http://www.apuntesdejava.com/2009/04/convertir-date-string-y-string-date.html
DecimalFormat
La clase DecimalFormat de java nos permite mostrar los nmeros en pantalla con el formato que
queramos, es decir, con cuntos decimales, si queremos
o coma para los decimales, etc. DecimalFormat tambin es til para presentar un nmero en un
JTextField o recoger el texto del JTextField y reconstruir el nmero.
Un uso simple de DecimalFormat puede ser este
import java.text.DecimalFormat;
...
DecimalFormat formateador = new DecimalFormat("####.####");
En la API de DecimalFormat podemos ver todos los posibles caracteres que admite la
mscara.
Si usamos ceros en vez de #, los huecos se rellenarn con ceros.
import java.text.DecimalFormat;
...
5
Manual Terico
De Java Netbeans
Fuente: http://chuwiki.chuidiang.org/index.php?title=DecimalFormat
SimpleDateFormat
Para qu sirve SimpleDateFormat
La clase SimpleDateFormat nos ayuda a mostrar las fechas en el formato que queramos o a reconstruirlas a
partir de una cadena de texto.
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
@Override
public void keyTyped(KeyEvent e) {
char tecla = e.getKeyChar();
if(conpunto && (tecla == puntodecimal)){
if (texto.getText().contains(""+puntodecimal)){
e.consume();
}
} else{
if ("0123456789".indexOf(tecla) == -1){
e.consume();
}
}
}
Fuente: http://forodejava.com/showthread.php/4754-Necesito-Validar-un-JtextField-y-definir-un-tama%C3%B1o-fijo-para-mi-
aplicaci%C3%B3n.
Fuente: http://blogs.vandal.net/3996/vm/1737313172008
Fuente: http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/java/respuestas/2034401/convertir-
datetime-a-string
5
Manual Terico
De Java Netbeans
Java: JTable scroll a la ltima fila cada vez que se agrega una
La Idea:
Cuando se agrega dinamicamente una fila a un JTable, el foco de sta no se altera, osea parecen las famosas
barras de scroll y se siguen agregando datos, que si queremos ver, tenemos que scrollear. El objetivo de ste
cdigo sera que automaticamente cada vez que se agrega una fila, ponerla en foco
El Uso:
Una tabla que vaya registrando eventos de bitcora ( Un Log ) e ir viendo en tiempo real que sucede sin
tener que estar usando la barra.
El Cdigo:
public void agregarFilaTabla(...) {
//Cdigo que agrega una fila en la tabla
//......
// Scroll a la ltima fila
int row=tabla.getRowCount()-1;
Rectangle rect=tabla.getCellRect(row, 0, true);
tabla.scrollRectToVisible(rect);
tabla.clearSelection();
tabla.setRowSelectionInterval(row, row);
DefaultTableModel modelo=(DefaultTableModel)tabla.getModel();
modelo.fireTableDataChanged();
}
Fuente: http://hackelare.wordpress.com/2011/06/27/java-jtable-scroll-a-la-ultima-fila-cada-vez-que-se-
agrega-una/
JTABLE
Un JTable es un componente visual de Java que nos permite dibujar una tabla, de forma que en cada
fila/columna de la tabla podamos poner el dato que queramos; un nombre, un apellido, una edad, un
nmero, etc.
http://www.abcdatos.com/tutoriales/tutorial/z3128.html
Definicin Jtable
Jtable es una clase que me permite organizar una determinada informacin en tabla, esta difiere de una base
de datos normal porque al utilizar Jtable tu puedes visualizar esta tabla, brindndole a el usuario
organizacin de informacin, oportunidades de editar y cambiar el tamao de las columna entre otras.
INICIOS DE JTABLE
En principio se creo la clase Jtable para constituir un interfaz ligado a bases de datos a travs de "Java
Database Connectivity" (JDBC), y as evita la complejidad que exista par el manejo de datos, dando as al
programador mucha mas facilidad a la hora de trabajar con este tipo de informacin.
Jtable le da al programador muchas facilidades, pues este posee varias caractersticas que permiten hacer
desde tablas con informacin compleja y muy estructurada hasta tablas con informacin sencilla y "bsica".
TABLE MODEL
La clase Jtable controla como se presentan los datos, siendo el TableModel quien controla los datos s
mismos. para crear una Jtable habr pues que crear un TableModel antes, normalmente. TableModel lo que
hace es predeterminar ciertas caractersticas para el Jtable es decir que tu puedes poner ciertos parmetros
dentro de un TableModel y as no tener que determinarlos siempre. TableModel es un programa que guarda
los datos de la tabla para si mismo, es decir, puede tener la informacin de la tabla pero estos datos son los
visualizados por el computador, es decir, para visualizar una tabla el TABLEMODEL puede tener la
informacin pero sin el Jtable no se puede visualizar para el usuario.
EDITABLE O NO?
Jtable tiene una caracterstica muy llamativa, este permite que el programador pueda decirdir que se edita y
que no, sin embargo si el programador dentro de su programa o de su TABLEMODEL no tiene
determinado este aspecto, Jtable automticamente hace editable las celdas dentro de la tabla. Existen varias
maneras de hacer editable o no las celdas dentro de la tabla, para ver estos comandos tu te puedes dirigir a
Dentro de las celdas encontradas en una tabla se puede permitir al usuario editar o no editar segn lo desee
el programador, esta propiedad se puede arreglar desde el table model o directamente y/o desde el
programa. Jtable tiene la propiedad de dejar editable las celdas si no encuentra nada que hable de esto.
Y LA INFORMACIN, Y LAS COLUMNAS?.
5
Manual Terico
De Java Netbeans
Jtable te brinda muchas facilidades para poder crear una table, y as mismo de llenarla con la informacin
que desees ( nmeros, letras etc...) por lo que sencillamente dentro de una tabla esta automticamente a
travs de la informacin debidamente separada - por ""(comillas) o por , (coma) - es capaz de
contabilizarlas y al mismo tiempo llenarla con la informacin que se le dio; es decir el programador solo se
debe encargar de poner los ttulos de las tablas y as mismo de escribir la informacin en el mismo orden en
que desee que salga de acuerdo con los ttulos y Jtable se encargara automticamente de colocar la
informacin donde se le indico.
UN CHECK BOX?
Para un CellRendered con un TableModel sencillo, tal vez identificar clases pueda ser algo mas complejo
que no pueda hacer, pero para uno un poco mas avanzado, esto seria muy fcil, y para esto cito el caso de
un CHECK BOX(casilal de verificacin) el cual es un componente grafico generado por Jtable despus de
que identifica una informacin tipo boolean, dndole as la apariencia de un cuadro rellenable, un check
box no es mas que eso, una opcin - que puede ser editable o no - que simplemente se chulea para indicar
un si o un no ( si esta chuleado significa verdadero, sino lo esta indica falso), la cual el usuario solo puede
colocar mediante un TableModel que sepa identificar clases.
UN LIST BOX?
En algunas oportunidades, para cierto tipo de informacin que deseamos que el usuario complete,
necesitamos darle a el usuario, cierto tipo de opciones cosa que a travs de un List Box tu puedes ofrecer al
usuario el tipo de respuestas que tu desees que el selecciones, este tipo de organizacin de informacin ya
no es tan sencillo como declarar una informacin tipo boolean, toca crear la lista.
http://www.gfc.edu.co/estudiantes/anuario/2002/sistemas/alejandra/Jtable.junk/c2.html
La forma ms sencilla de usar un JTable y tener toda su funcionalidad es instanciar un DefaultTable-Model
y meterlo en el JTable, en el constructor
DefaultTableModel modelo = new DefaultTableModel();
JTable tabla=new JTable(modelo);
Podemos aadir columnas directamente en el modelo
modelo.addColumn("etiqueta columna 1");
modelo.addColumn("etiqueta columna 2");
Podemos aadir datos directamente en el modelo, as como borrarlos o modificarlos
Object [] fila = new Object[2];
fila[0]="dato columna 1";
fila[1]="dato columna 3";
modelo.addRow ( fila );// Aade una fila al final
modelo.setValueAt ("nuevo valor", 0, 1);//Cambia el valor de la fila 1,
columna 2.
modelo.removeRow (0);// Borra la primera fila
Todo lo que hagamos se reflejar de inmediato en el JTable.
Obtener fila y columna del JTable en la que se hace click
A veces nos interesa seleccionar una fila del JTable para hacer algo con ella (sacar un men, recoger datos
para mostrarlos en otro sitio, etc).
Una forma de hacerlo es aadiendo un MouseListener al JTable, de esta manera:
tabla.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
int fila = tabla.rowAtPoint(e.getPoint());
int columna = tabla.columnAtPoint(e.getPoint());
if ((fila > -1) && (columna > -1))
System.out.println(modelo.getValueAt(fila,columna));
}
});
Hemos aadido un MouseAdapter para no tener que implementar todos los mtodos del MouseListener.
Con el mtodo tabla.rowAtPoint() es posible enterarnos en qu fila de del JTable ha ocurrido el evento del
ratn (el click en este caso). Para ello basta llamar a este mtodo pasndole las coordenadas x,y del evento
de ratn, que se obtienen con el mtodo e.getPoint().
5
Manual Terico
De Java Netbeans
Una vez que sabemos la fila, debemos comprobar si es mayor que -1. El mtodo rowAtPoint() nos
devuelve -1 si pinchamos en el JTable, pero fuera de cualquier fila. Es el caso de que el JTable tenga un
tamao en pixels superior al que le corresponde segn su nmero de filas.
Lo mismo vale para columnAtPoint().
Una vez que tenemos la fila y sabemos que no es -1, es fcil a travs del modelo obtener los datos
correspondientes. En este caso se escribe por pantalla con un System.out.prinln() el valor de la fila y
columna que se ha seleccionado.
Hacer que una celda del JTable no sea editable
Si usamos DefaultTableModel las celdas del JTable son editables por defecto. A veces esto no nos interesa
y JTable no tiene mtodos para impedirlo. La forma de decidir qu celdas son o no editables es hacer
nuestro propio modelo de datos, nuestro TableModel. La forma sencilla de hacerlo es heredar de
DefaultTableModel y redefinir el mtodo isCellEditable() para que sirva a nuestros propsitos
public class MiModelo extends DefaultTableModel {
public boolean isCellEditable (int row, int column) {
//Aqu devolvemos true o false segn queramos que una celda
//identificada por fila,columna (row,column), sea o no editable
if (column == 3)
return true;
return false
}
}
En este ejemplo, hemos creado nuestro propio modelo de datos que hace que la columna 4 (los ndices
empiezan en cero) de la tabla sea editable y el resto no. Ahora simplemente instanciamos el JTable usando
este modelo y rellenamos los datos igual que antes.
MiModelo modelo = new MiModelo();
JTable tabla = new JTable(modelo);
Cambiar el tipo de dato con DefaultTableModel
DefaultTableModel por defecto le dice al JTable que todos los datos que tiene son Object. A veces, porque
queramos cambiar el TableCellRenderer o cualquier otro motivo, nos interesa que determinadas columnas
se consideren como Boolean, como Integer o cualquier otro tipo de dato.
Para modificar esto, tenemos que crearnos nuestro propio modelo de Datos. La forma ms sencilla es
heredar de DefaultTableModel y redefinir el mtodo getColumnClass().
public class MiModelo extends DefaultTableModel {
/**Primera columna Boolean, segunda Integer y el resto Object */
public Class getColumnClass(int columna) {
if (columna == 0) return Boolean.class;
if (columna == 1) return Integer.class;
return Object.class;
}
}
En el ejemplo se ha hecho que la primera columna sea de Boolean, la segunda de Integer y el resto de
Object.
Una cosa curiosa de los Boolean, es que el JTable al pintarlos los pone como JCheckBox.
Hacer visible una fila concreta del JTable dentro de un JScrollPane
Para que un JTable tenga barras de scroll y tenga una "cabecera" con las etiquetas de las columnas, es
necesario meterla en un JScrollPane. Esto se puede hacer de dos formas.
JTable tabla = new JTable();
JScrollPane scroll = new JScrollPane(tabla);
o bien
JTable tabla = new JTable();
JScrollPane scroll = new JScrollPane();
scroll.setViewportView(tabla);
es bastante habitual al principio equivocarse y usar el mtodo add(), que NO funcionar correctamente
JTable tabla = new JTable();
JScrollPane scroll = new JScrollPane();
// Esto NO funciona.
5
Manual Terico
De Java Netbeans
scroll.add(tabla);
Cuando tenemos un JTable metido dentro de un JScrollPane, a veces queremos que las barras de scroll se
desplacen para que una determinada celda sea visible.
No conozco una forma inmediata de hacerlo, pero una posible solucin es esta.
...
// Nos devuelve la posicin en pixels de una celda en fila,columna
Rectangle r = tabla.getCellRect( fila, columna, true);
// Mueve el scroll para que el rectangulo sea visible
scrollPane.getViewport().scrollRectToVisible (r);
http://www.chuidiang.com/chuwiki/index.php?title=JTable#JTable
La JTable controla cmo se presentan los datos, siendo el TableModel quien controla los datos en s
mismos. Para crear una JTable habr pues que crear un TableModel antes, normalmente. Se puede
implementar, para ello, el interfaz TableModel, pero es mucho ms simple heredar de la clase ayuda
AbstractTableModel. El ejemplo java1416.java muestra esta circunstancia.
import java.awt.*;
import java.awt.event.*;
import com.sun.java.swing.*;
import com.sun.java.swing.table.*;
import com.sun.java.swing.event.*;
//El Modelo de la Tabla es el que controla todos los
// datos que se colocan en ella
class ModeloDatos extends AbstractTableModel {
Object datos[][] = {
{"uno","dos","tres","cuatro"},
{"cinco","seis","siete","ocho"},
{"nueve","diez","once","doce"},
};
//Esta clase imprime los datos en la consola cada vez
//que se produce un cambio en cualquiera de las
//casillas de la table
class TablaListener implements TableModelListener {
public void tableChanged( TableModelEvent evt ) {
for( int i=0; i < j="0;" tabla =" new" panel =" new" frame ="
new">
Una vez que se tiene un TableModel, ya slo resta colocarlo en el constructor de JTable. Todos los detalles
de presentacin, edicin y actualizacin estn ocultos al programador. En este ejemplo, se coloca la JTable
en un JScrollPane, por lo que es necesario un mtodo especial en JTable.
Las tablas pueden soportar un comportamiento ms complejo. En el ejemplo java1417.java, se utiliza un
mtodo para cargar un array de ocho columnas por un ciento de filas y, posteriormente, la tabla es
configurada para que muestre solamente las lneas verticales y permita la seleccin simultnea de la fila y
columna en que se encuentre la celda marcada.
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import com.sun.java.swing.*;
import com.sun.java.swing.table.*;
class java1417 extends JPanel {
private JTable tabla;
private JScrollPane panelScroll;
private String titColumna[];
private String datoColumna[][];
public java1417() {
5
Manual Terico
De Java Netbeans
5
Manual Terico
De Java Netbeans
document.onkeydown=capturarf5;
Como podemos ver, la funcin recibe el objeto event. Este ser el que contenga la
informacin de la tecla que el usuario ha pulsado.
Empecemos a detallar la funcin capturarf5(). Lo primero que hay que saber es que el
cdigo de la tecla pulsada viaja en la propiedad event.which y que la tecla F5 tiene el
cdigo 116. Como la propiedad event.which no est recogida en ninguna especificacin
(de momento es del DOM Gecko, aunque ampliamente reconocida) tambin tenemos que
utilizar la propiedad e.keycode (de las implementaciones para el Internet Explorer)
As, para capturar el cdigo de la tecla utilizamos la siguiente lnea:
var code = (e.keyCode ? e.keyCode : e.which);
Paso 2:
5
Manual Terico
De Java Netbeans
Paso 3:
5
Manual Terico
De Java Netbeans
Paso 4:
Paso 5:
Paso 6:
5
Manual Terico
De Java Netbeans
Paso 7:
Paso 8:
5
Manual Terico
De Java Netbeans
Paso 9:
Fuente: http://delmon.huachoplus.com/redondear-decimales-en-java.html
Como pasar datos de un JFrame a otro JFrame o un JDialog en NetBeans??
Hola! Primero creo que necesitaramos saber qu datos quieres pasar, si los tomas de campos de texto, o
cuando das un click o que onda.
Pero bueno si deseas digamos que al dar click en un botn te cree un nuevo frame con datos del viejito solo
debes mandar el frame del que quieres obtener los datos como parmetro y variable de instancia del nuevo
frame.
Ejemplo:
public class JFrame1 extends JFrame{
//este es tu frame del que obtendrs datos
}
public class JFrame2 extends JFrame{
JFrame frame; //la variable de instancia del Jrame
public JFrame2(JFrame frame,...){
this.frame = frame;
}
}
Entonces si tienes un programa puedes crear un Frame1 y cuando creas el nuevo, le mandas el primero de
parmetro y de esta forma puedes acceder a todos los datos del primero.
JFrame1 miFrame = new JFrame1();
JFrame2 tuFrame = new JFrame2(miFrame);
Fuente: http://mx.answers.yahoo.com/question/index?qid=20080727101244AAtMmRz
5
Manual Terico
De Java Netbeans
jdialog_secundario ref=new
jdialog_secundario(null,true,nombre,edad);
}
...
}