tag:blogger.com,1999:blog-44939555389398894812024-02-18T23:14:19.285-03:00Cursos y tutoriales prácticos de programación en JavaBlog con la que pretendemos compartir un poco del conocimiento que hemos adquirido con el lenguaje de programación Java utilizando diferentes APIs y frameworks . Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.comBlogger156125tag:blogger.com,1999:blog-4493955538939889481.post-80994811669829024002020-10-17T11:15:00.001-03:002020-10-17T11:15:53.958-03:00Indice de Contenidos del Blog.<div id="super">
<div id="contenedor_gr">
<!-- Aplicación de Stock con Java. Hibernate – MySQL – JPA. -->
<div class="contenidos_gr" style="grid-row: span 1">
<div class="content_title">
<span class="img_index"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFT4Uq4g4HNE-m3kEsgGSodOA7tgLJsG9rOgWqZfZP62rFbB1UZGzF2LVoRC20Gq1nsDa21kSKEzz4lTWrK37yDPdWzgtmkwcBIOsRjxow7vxmXHZoZVEGsHZDlMzVIiFPQBonbtdn2eex/s64-no/Shop.png"></span>
<span class="title_index">Aplicación de Stock con Java.</span>
</div>
<h3>Aplicación de Stock.</h3>
<p>Utilizando: Hibernate – MySQL – JPA.</p>
<ul>
<li><a href="http://codigo--java.blogspot.com/2012/11/001-aplicacion-de-stock-con-java.html" target="_blank">Introducción.</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/11/002-aplicacion-de-stock-con-java.html" target="_blank">Creando nuevo proyecto.</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/11/003-aplicacion-de-stock-con-java.html" target="_blank">Configurando Base de Datos y Conexión</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/11/004-aplicacion-de-stock-con-java.html" target="_blank">Creando clases persistentes.</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/11/005-aplicacion-de-stock-con-java.html" target="_blank">Datos importantes antes de crear formularios.</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/12/005-aplicacion-de-stock-con-java.html" target="_blank">Formulario referencial Tipos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/12/007-aplicacion-de-stock-con-java.html" target="_blank">Formulario referencial Artículos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/12/008-aplicacion-de-stock-con-java.html" target="_blank">Formulario referencial Clientes.</a></li>
<li><a href="http://codigo--java.blogspot.com/2012/12/009-aplicacion-de-stock-con-java.html" target="_blank">Formulario referencial Funcionarios.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/010-aplicacion-de-stock-con-java.html" target="_blank">Formulario transaccional Ventas.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/08/011-aplicacion-de-stock-con-java.html" target="_blank">Formulario referencial Proveedores.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/09/012-aplicacion-de-stock-con-java.html" target="_blank">Formulario transaccional Compras.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/10/013-aplicacion-de-stock-con-java.html" target="_blank">iReport. Introducción para crear informes.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/10/014-aplicacion-de-stock-con-java.html" target="_blank">iReport. Reporte para referencial Tipo.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/11/015-aplicacion-de-stock-con-java.html" target="_blank">iReport. Reporte para referencial Artículo.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/11/016-aplicacion-de-stock-con-java.html" target="_blank">iReport. Reporte para referencial Cliente.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/11/017-aplicacion-de-stock-con-java.html" target="_blank">iReport. Reporte para referencial Funcionario.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/11/018-aplicacion-de-stock-con-java.html" target="_blank">iReport. Reporte para transacción Venta.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/12/019-aplicacion-de-stock-con-java.html" target="_blank">iReport. Reporte para referencial Proveedor.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/12/020-aplicacion-de-stock-con-java.html" target="_blank">iReport. Reporte para transacción Compra.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/12/021-aplicacion-de-stock-con-java.html" target="_blank">Creando pantalla principal.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/12/022-aplicacion-de-stock-con-java.html" target="_blank">Compilando Proyecto.</a></li>
</ul>
<span class="pie_txt"><a href="http://codigo--java.blogspot.com/search/label/Ejercicios%20Java">Ver todas las entradas</a></span>
</div>
<!-- Java Básico con Swing. Modo Diseño con NetBeans.-->
<div class="contenidos_gr" style="grid-row: span 2">
<div class="content_title">
<span class="img_index"><img style="width: 64px;height: 64px" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwSY1P1H8wS_DlA4Ch_ZN1LB-skvFEroCkubA0GBkz2GbW9zieBX-AUbhw9qzheQBodzYPZibDSlcG02-wXevOeNbjNCnrSDHbkzEKIIcn-_iM4j0QVCqnAXVe2ANYhuMgcL1biT8zr_8U/s256-no/ress.png"></span>
<span class="title_index">Java Básico con Swing.</span>
</div>
<h3>Trabajando Swing.</h3>
<p>Diseño de Formularios en NetBeans.</p>
<ul>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-001-modo-diseno-en-netbeans.html" target="_blank">Hola Mundo.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-002-modo-diseno-en-netbeans.html" target="_blank">Cálculos Básicos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-003-modo-diseno-en-netbeans.html" target="_blank">Uso básico de Métodos y Eventos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-004-modo-diseno-en-netbeans.html" target="_blank">Eventos, trabajo con Tabla.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-005-modo-diseno-en-netbeans.html" target="_blank">Uso básico de Métodos y JOptionPane.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-006-modo-diseno-en-netbeans.html" target="_blank">Control de Excepciones, Conversiones</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-007-modo-diseno-en-netbeans.html" target="_blank">Conversión de tipo de datos y Tabla.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-008-modo-diseno-en-netbeans.html" target="_blank">Eventos, Control de Excepciones</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-009-modo-diseno-en-netbeans.html" target="_blank">Conversión de tipo de datos, jCheckBox.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-010-modo-diseno-en-netbeans.html" target="_blank">Conversión de tipo de datos y Tablas.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-swing-011-modo-diseno-en-netbeans.html" target="_blank">Thread y Random.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-swing-012-modo-diseno-en-netbeans.html" target="_blank">Juego de números aleatorios con Thread</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-swing-013-modo-diseno-en-netbeans.html" target="_blank">Trabajando con tabla.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-swing-014-modo-diseno-en-netbeans.html" target="_blank">Rellenar tabla utilizando ArrayList.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-swing-015-modo-diseno-en-netbeans.html" target="_blank">Fecha y Hora con objeto Calendar.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-swing-016-modo-diseno-en-netbeans.html" target="_blank">Trabajando con JComboBox y jTable.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-swing-017-modo-diseno-en-netbeans.html" target="_blank">Números aleatorios. Utilizando Thread y Random.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/08/java-swing-018-modo-diseno-en-netbeans.html" target="_blank">JComboBox, JCheckBox y jTable.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/11/java-swing-019-modo-diseno-en-netbeans.html" target="_blank">Clase Comparator con Collections.sort() para ordenar “List”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/02/java-swing-020-modo-diseno-en-netbeans.html" target="_blank">Llamar un jDialog interno desde un jFrame.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/02/java-swing-021-modo-diseno-en-netbeans.html" target="_blank">Llamar un jFrame externo desde un jFrame.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/02/java-swing-022-modo-diseno-en-netbeans.html" target="_blank">Utilizando Barra de Herramientas.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/03/java-swing-023-modo-diseno-en-netbeans.html" target="_blank">Utilizar función autocompletar en JComboBox.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/03/java-swing-024-modo-diseno-en-netbeans.html" target="_blank">Abrir imagen "jpg" y "png" desde aplicación Java.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/03/java-swing-025-modo-diseno-en-netbeans.html" target="_blank">Cargar imágenes “jpg” y “png” desde un directorio a un JTable.</a></li>
</ul>
<span class="pie_txt"><a href="http://codigo--java.blogspot.com/search/label/Swing">Ver todas las entradas</a></span>
</div>
<!-- Java Básico - Consola. Trabajando en modo consola. -->
<div class="contenidos_gr" style="grid-row: span 3">
<div class="content_title">
<span class="img_index"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcaKOIrBUMyPXi-3XAN-aklDSU1p8233KIb4s6I21b3xGUe6ZW6AcJpDe4akCQnvJD7Q_bvtCBlyULpfnaispt3llSFHYck-1A77pVxW-VnSNBiwk3w4Y5nGleN5uU4RgQp7KYnpPFgwPO/s64-no/mon.png"></span>
<span class="title_index">Tutoriales Java Básico</span>
</div>
<h3>Java Básico.</h3>
<p>Trabajando en modo consola.</p>
<ul>
<li><a href="http://codigo--java.blogspot.com/2013/04/palabras-reservadas-en-java.html" target="_blank">Palabras reservadas en Java.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-tipos-primitivos-de-variables.html" target="_blank">Java. Tipos Primitivos de Variables.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/primer-programa-en-java-mostrar-una.html" target="_blank">Primer programa en JAVA. Mostrar una línea de texto.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/aplicacion-basica-en-java-suma-de.html" target="_blank">Aplicación básica en Java. Suma de enteros.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-utilizacion-de-operadores-de.html" target="_blank">Utilización de operadores de igualdad y relacionales.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-001-condicional-if-else.html" target="_blank">Condicional if-else.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-002-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in)</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-003-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in), condicional “if”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-004-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in) condicional “if-else”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-005-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in), condicional “if-else”, Math.sqrt().</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-006-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in), condicional “if”. </a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-007-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in), condicional “if”, operador “&&”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-008-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in), operador “||” y “!=”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-009-uso-de-scannersystemin.html" target="_blank">Uso de Scanner(System.in), condicional “if-else”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-010-uso-de-scannersystemin.html" target="_blank">Java básico 010. Uso de Scanner(System.in).</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-011-uso-buble-for.html" target="_blank">Uso buble for.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-012-uso-buble-for.html" target="_blank">Uso buble for.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-013-uso-buble-for.html" target="_blank">Uso buble for, condicional "if".</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-014-uso-buble-for.html" target="_blank">Uso buble for.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-015-uso-buble-for.html" target="_blank">Uso buble for.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/04/java-basico-016-uso-buble-do-while.html" target="_blank">Uso buble do-while.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-017-uso-buble-for.html" target="_blank">Uso buble for.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-018-control-de-excepciones.html" target="_blank">Control de excepciones, Scanner(System.in).</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-018-arrays-arrayssort.html" target="_blank">Arrays, Arrays.sort().</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-020-arrays-string-arrayssort.html" target="_blank">Arrays - String, Arrays.sort().</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-021-ordenamiento-por.html" target="_blank">Ordenamiento por inserción.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-022-utilizacion-de.html" target="_blank">Utilización de “SimpleDateFormat”, Calendar, formato de fecha y hora.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-023-ordenamiento-por-burbuja.html" target="_blank">Ordenamiento por Burbuja.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-024-area-de-un-circulo.html" target="_blank">Área de un Círculo.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/05/java-basico-025-determinar-multiplo.html" target="_blank">Determinar múltiplo entre dos número.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-026-conversion-de-numeros.html" target="_blank">JConversión de números a letras.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-027-utilizando-do-while.html" target="_blank">Utilizando “do-while”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-028-factorial-de-un-numero.html" target="_blank">Factorial de un número.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-029-encontrar-multiplos-de-3.html" target="_blank">Encontrar múltiplos de 3.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-030-tabla-de-multiplicar-de.html" target="_blank">Tabla de multiplicar de un número entre 0 y 10.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-031-tabla-de-multiplicar.html" target="_blank">Tabla de multiplicar del 1 al 10. Utilizando bucles anidados.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-032-imprimiendo-arrays.html" target="_blank">Imprimiendo Arrays orden inverso.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-033-arrays-bidimensionales.html" target="_blank">Arrays bidimensionales.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-034-arrays-bidimensionales.html" target="_blank">JArrays bidimensionales. Suma de Filas y Columnas.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-035-arrays-bidimensionales.html" target="_blank">Arrays bidimensionales. Comprobando Simetría.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-036-arrays-bidimensionales.html" target="_blank">Arrays bidimensionales. Suma de tablas.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-037-arrays-bidimensionales.html" target="_blank">Arrays bidimensionales. Transponer elementos de Tabla.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-038-funcion-un-parametro.html" target="_blank">Función, un parámetro.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-039-funcion-dos-parametros.html" target="_blank">Función, dos parámetros y retorno.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-040-funcion-tres-parametros.html" target="_blank">Función, tres parámetros y retorno.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-041-funcion-de-arrays-como.html" target="_blank">Función de Arrays como parámetro más retorno.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-042-funcion-de-arrays-como.html" target="_blank">Función de Arrays como parámetro, control de duplicación más retorno.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-043-ejercicio-utilizando.html" target="_blank">Ejercicio utilizando Función más retorno.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-044-ejercicio-utilizando.html" target="_blank">Ejercicio utilizando Función más retorno. Potencia de a exp n.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-045-funcion-conversion.html" target="_blank">Función conversión a binario.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-046-funcion-calculando-seno.html" target="_blank">Función, calculando seno, coseno y tangente.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/06/java-basico-047-funcion-potencia-de.html" target="_blank">Función, potencia de (a^n) utilizando recursividad.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-basico-048-funcion-factorial-de-n.html" target="_blank">Función, factorial de “n” utilizando recursividad.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-basico-049-funcion-obtener-el.html" target="_blank">Función, obtener el máximo de un “Array” utilizando recursividad.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-basico-050-funcion-obtener-semanas.html" target="_blank">Función, obtener semanas, días y HH:mm:ss de cierta cantidad de segundos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-basico-051-funcion-imprimir-un.html" target="_blank">Función, imprimir un cuadrado hueco utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-basico-052-funcion-obtener.html" target="_blank">Función, obtener cociente y resto sin utilizar operaciones de división.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-basico-053-funcion-obtener.html" target="_blank">Función, obtener multiplicación de (m * n) utilizando ciclo.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/07/java-basico-054-funcion-calculo-de-xy.html" target="_blank">Función, cálculo de x^y utilizando multiplicación sucesiva.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/08/java-basico-055-funcion-imprimir-un.html" target="_blank">Función, imprimir un cuadrado lleno utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/08/java-basico-056-funcion-imprimir-un.html" target="_blank">Función, imprimir un triángulo rectángulo lleno utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/08/java-basico-057-funcion-imprimir-un.html" target="_blank">Función, imprimir un triángulo rectángulo hueco utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/08/java-basico-058-funcion-imprimir-un.html" target="_blank">Función, imprimir un triángulo relleno utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/08/java-basico-059-funcion-imprimir-un.html" target="_blank">Función, imprimir un triángulo hueco utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/09/java-basico-060-funcion-imprimir-un.html" target="_blank">Función, imprimir un rombo relleno utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/09/java-basico-061-funcion-imprimir-un.html" target="_blank">Función, imprimir un rombo hueco utilizando asteriscos “*”.</a></li>
<li><a href="http://codigo--java.blogspot.com/2013/09/java-basico-062-funcion-utilizando.html" target="_blank">Función, utilizando StringTokenizer.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/07/java-basico-063-funcion-calcular-area.html" target="_blank">Función, calcular área de un triángulo utilizando fórmula de Herón.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/08/java-basico-063-funcion-calculando.html" target="_blank">Función, calculando números primos.</a></li>
<li><a href="https://codigo--java.blogspot.com/2019/10/java-basico-065-factorial-de-numeros-de.html" target="_blank">Factorial de Números de 1 al 10.</a></li>
<li><a href="https://codigo--java.blogspot.com/2019/10/java-basico-066-uso-de-list-y-arraylist.html" target="_blank">Uso de List y ArrayList con registros.</a></li>
<li><a href="https://codigo--java.blogspot.com/2019/10/java-basico-067-uso-de-pila-stack-para.html" target="_blank">Uso de Pila -Stack- para trabajar con registros.</a></li>
<li><a href="https://codigo--java.blogspot.com/2019/10/java-basico-068-uso-de-la-interfaz.html" target="_blank">Uso de la interfaz Deque para trabajar con registros.</a></li>
</ul>
<span class="pie_txt"><a href="http://codigo--java.blogspot.com/search/label/Consola">Ver todas las entradas</a></span>
</div>
<!-- Java modo diseño. Uso básico de elementos Swing con NetBeans. -->
<div class="contenidos_gr">
<div class="content_title">
<span class="img_index"><img style="width: 64px; height: 64px" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDFeuEYxUK8cLLRlcjRQ0Z4HE8cB4cbZF4B6WIDRNjPl1B3NKEsxitrpEDaTvc_2mAEuuJyDd4ehcZzYWZj-VONytJmIBClTAS8ksRZkGfLPBnrP0qdQnuOlwg2wOojdiZtAaQjoLZlMSJ/s256-no/javaId.png"></span>
<span class="title_index">Tutoriales Java modo diseño.</span>
</div>
<h3>Java modo diseño</h3>
<p>Uso básico de elementos Swing con NetBeans.</p>
<ul>
<li><a href="http://codigo--java.blogspot.com/2014/03/uso-basico-de-elementos-swing-con.html" target="_blank">Uso de JButton con eventos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/03/uso-basico-de-elementos-swing-con_24.html" target="_blank">Uso básico de JButton, JCheckBox y JList con eventos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/03/uso-basico-de-elementos-swing-con_26.html" target="_blank">Uso básico de JRadioButton con eventos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/04/uso-basico-de-elementos-swing-con.html" target="_blank">Uso básico de JComboBox con eventos. Ej. 01.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/04/uso-basico-de-elementos-swing-con_4.html" target="_blank">Uso básico de JComboBox con eventos. Ej. 02.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/04/uso-basico-de-elementos-swing-con_8.html" target="_blank">Uso básico de JOptionPane con eventos. Ej. 01.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/04/uso-basico-de-elementos-swing-con_10.html" target="_blank">Uso básico de JOptionPane con eventos. Ej. 02.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/04/uso-basico-de-elementos-swing-con_23.html" target="_blank">Uso básico de JOptionPane con eventos. Ej. 03.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/05/uso-basico-de-elementos-swing-con.html" target="_blank">Uso básico de JOptionPane con eventos. Ej. 04.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/05/uso-basico-de-elementos-swing-con_9.html" target="_blank">Uso básico de JTextArea y JPanel. Ej. 01.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/05/uso-basico-de-elementos-swing-con_21.html" target="_blank">Uso básico de JEditorPane y JPanel, visualizar documento HTML.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/05/uso-basico-de-elementos-swing-con_28.html" target="_blank">Uso básico de JTextPane y JPanel, texto con estilo y objetos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/06/uso-basico-de-elementos-swing-con.html" target="_blank">Uso básico de JFileChooser, diálogo de apertura y guardado.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/06/uso-basico-de-elementos-swing-con_5.html" target="_blank">Uso básico de JFileChooser, diálogo de apertura con filtro de imagen y vista previa.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/06/uso-basico-de-elementos-swing-con_10.html" target="_blank">Uso básico de JFileChooser, diálogo de apertura con filtro de imagen simple y carga de imagen.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/07/uso-basico-de-elementos-swing-con.html" target="_blank">Uso de LookAndFeel con JFrame e icono personalizado para formulario.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/07/uso-basico-de-elementos-swing-con_8.html" target="_blank">Uso de JInternalFrame.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/07/uso-basico-de-elementos-swing-con_11.html" target="_blank">Uso de JLabel.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/07/uso-basico-de-elementos-swing-con_17.html" target="_blank">Uso de JList. Ejemplo 1.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/07/uso-basico-de-elementos-swing-con_23.html" target="_blank">Uso de JList. Ejemplo 2.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/07/uso-basico-de-elementos-swing-con_30.html" target="_blank">Uso de Menú - JMenu.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/08/uso-basico-de-elementos-swing-con.html" target="_blank">Uso de JPopupMenu, menú emergente.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/08/uso-basico-de-elementos-swing-con_28.html" target="_blank">Uso de JPasswordField, campo para contraseña.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/09/uso-basico-de-elementos-swing-con.html" target="_blank">Uso de JProgressBar, barra de progreso.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/09/uso-basico-de-elementos-swing-con_10.html" target="_blank">Uso de JProgressBar, barra de progreso. Ejemplo 2.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/09/uso-basico-de-elementos-swing-con_23.html" target="_blank">Uso de JSlider, regla interactiva.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/10/uso-basico-de-elementos-swing-con.html" target="_blank">Uso de Spinners, lista de elementos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/10/uso-basico-de-elementos-swing-con_8.html" target="_blank">Uso de Spinner con fecha y hora. Ejemplo 2.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/10/uso-basico-de-elementos-swing-con_16.html" target="_blank">Uso de JSplitPane, divisor de elementos.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/10/uso-basico-de-elementos-swing-con_23.html" target="_blank">Uso de JTabbedPane, divisor de paneles.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/11/uso-basico-de-elementos-swing-con.html" target="_blank">Uso de JTable, agregar y eliminar elementos de tabla.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/11/uso-basico-de-elementos-swing-con_20.html" target="_blank">Uso de JTextArea, agregar elementos desde JTextField.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/11/uso-basico-de-elementos-swing-con_28.html" target="_blank">Uso de JTextArea, cambio de fuente y tamaño de fuente.</a></li>
<li><a href="http://codigo--java.blogspot.com/2014/12/uso-basico-de-elementos-swing-con.html" target="_blank">Uso de JToolBar, barra de herramientas.</a></li>
</ul>
<span class="pie_txt"><a href="http://codigo--java.blogspot.com/search/label/Swing">Ver todas las entradas</a></span>
</div>
</div>
</div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.comtag:blogger.com,1999:blog-4493955538939889481.post-45229332351854149572019-10-21T14:38:00.000-03:002019-11-20T08:31:30.238-03:00 Java básico 068. Uso de la interfaz Deque para trabajar con registros.<h1>Utilizando la Interfaz Java Deque.</h1>
<p>La interfaz Java <b>Deque java.util.Deque</b>, representa una cola de doble extremo, lo que significa una cola donde puede agregar y eliminar elementos de ambos extremos de la cola. El nombre Deque es una abreviatura de Double Ended Queue.</p>
<p>Para implementar un Deque podemos utilizar dos interfaces, por una parte java.util.LinkedList el más estándar y java.util.ArrayDeque.</p>
<p>La interfaz Java Deque contiene los siguientes métodos para <b>agregarle</b> elementos:</p>
<ul>
<li><b>add()</b>: Agregar elemento al principio de la cola.</li>
<li><b>addLast ()</b>: Agrega un elemento al final de la cola.</li>
<li><b>addFirst ()</b>: Agrega un elemento al principio de la cola.</li>
</ul>
<p>Para <b>eliminar</b> elementos de un Java Deque, puede usarse uno de los siguientes métodos:</p>
<ul>
<li><b>remove()</b>: Elimina el primer elemento.</li>
<li><b>removeFirst()</b>: Remueve el primer elemento.</li>
<li><b>removeLast()</b>: Remueve el ultimo elemento.</li>
</ul>
<p>Como ejemplo utilizamos la clase “<b>Usuario</b>” que nos sirve para almacenar como registro, una clase “<b>UsuarioApp</b>” con el método main para la ejecución.</p>
<b>Clase Usuario.</b>
<pre style="text-align: left; border: 1px dashed #008DEF; line-height: 18px; padding: 15px; font-size: 13px; font-family:'Courier New', Courier, monospace; overflow: auto;"><span style='color:#3F5FBF'>/**
*
* @author carlos
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>class</span> Usuario <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Atributos
</span> <span style='font-weight:bold;color:#7B0052;'>private</span> <span style='font-weight:bold;color:#7B0052;'>int</span> id;
<span style='font-weight:bold;color:#7B0052;'>private</span> String nombre;
<span style='font-weight:bold;color:#7B0052;'>private</span> String password;
<span style='color:#3F7F5F'>//Constructores
</span> <span style='font-weight:bold;color:#7B0052;'>public</span> Usuario() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> Usuario(<span style='font-weight:bold;color:#7B0052;'>int</span> id, String nombre, String password) <span style='font-weight:bold;color:#D3171B'>{</span>
this.id = id;
this.nombre = nombre;
this.password = password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='color:#3F7F5F'>//Getters y Setters
</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>int</span> getId() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> id;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setId(<span style='font-weight:bold;color:#7B0052;'>int</span> id) <span style='font-weight:bold;color:#D3171B'>{</span>
this.id = id;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> String getNombre() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> nombre;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setNombre(String nombre) <span style='font-weight:bold;color:#D3171B'>{</span>
this.nombre = nombre;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> String getPassword() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setPassword(String password) <span style='font-weight:bold;color:#D3171B'>{</span>
this.password = password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span></pre>
<b>Clase UsuarioApp</b>
<pre style="text-align: left; border: 1px dashed #008DEF; line-height: 18px; padding: 15px; font-size: 13px; font-family:'Courier New', Courier, monospace; overflow: auto;"><span style='font-weight:bold;color:#7B0052;'>import</span> java.util.Deque;
<span style='font-weight:bold;color:#7B0052;'>import</span> java.util.LinkedList;
<span style='color:#3F5FBF'>/**
*
* @author carlos
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>class</span> DequeApp <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F5FBF'>/**
* @param args the command line arguments
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> main(String[] args) <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Métodos creados más abajo
</span> Deque<Usuario> usuario = cargar();
print(usuario);
eliminar(usuario);
print(usuario);
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>static</span> Deque<Usuario> cargar()<span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Forma de instanciar un Deque utilizando LinkedList
</span> Deque<Usuario> us = <span style='font-weight:bold;color:#7B0052;'>new</span> LinkedList<>();
<span style='color:#3F7F5F'>//add() agrega elementos al princio. En orden en que llega.
</span> us.add(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(1, <span style='color:#2A00FF'>"Angel"</span>, <span style='color:#2A00FF'>"sng1236"</span>));
us.add(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(2, <span style='color:#2A00FF'>"Perla"</span>, <span style='color:#2A00FF'>"per20145"</span>));
<span style='color:#3F7F5F'>//addFirst() agrega justo al principio de la lista
</span> us.addFirst(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(3, <span style='color:#2A00FF'>"Manuela"</span>, <span style='color:#2A00FF'>"mnd23145"</span>));
<span style='color:#3F7F5F'>//addLast() agrega elemento al final de la lista
</span> us.addLast(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(4, <span style='color:#2A00FF'>"Luis"</span>, <span style='color:#2A00FF'>"lu2345"</span>));
<span style='font-weight:bold;color:#7B0052;'>return</span> us;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> eliminar(Deque<Usuario> usuario)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"----------------------"</span>);
System.out.println(<span style='color:#2A00FF'>"Removiendo elementos"</span>);
<span style='color:#3F7F5F'>//Remueve el primer elemento
</span> usuario.removeFirst();
<span style='color:#3F7F5F'>//Remueve el último elemento.
</span> usuario.removeLast();
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> print(Deque<Usuario> usuario)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"Imprimiendo Datos."</span>);
<span style='font-weight:bold;color:#7B0052;'>for</span>(Usuario us : usuario)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"______________________________"</span>);
System.out.println(<span style='color:#2A00FF'>"ID: "</span> + us.getId());
System.out.println(<span style='color:#2A00FF'>"Nombre: "</span> + us.getNombre());
System.out.println(<span style='color:#2A00FF'>"Password: "</span> + us.getPassword());
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span></pre>
<b>Resultado.</b>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHPWj06syc6fA4yFQ89xrdvgcGVpf6VMncGgCEWc4FoLtJsGY4w8dWwOygTluwjG3Rx8er6zzbLzBd-bgrzVn0ibkH_wwz5Engot0JOgAQBrc-Dm4W1c84VkTjk8MjYBgWphc4iK-UdJ0/s1600/deque_app.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHPWj06syc6fA4yFQ89xrdvgcGVpf6VMncGgCEWc4FoLtJsGY4w8dWwOygTluwjG3Rx8er6zzbLzBd-bgrzVn0ibkH_wwz5Engot0JOgAQBrc-Dm4W1c84VkTjk8MjYBgWphc4iK-UdJ0/s1600/deque_app.png" data-original-width="369" data-original-height="537" /></a></div>
Arielhttp://www.blogger.com/profile/12835773285048332502noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-70367184018509804162019-10-19T09:37:00.000-03:002019-11-20T08:33:38.120-03:00Java básico 067. Uso de Pila -Stack- para trabajar con registros<h1>Utilización de la clase Stack. Estructura de datos tipo pila.</h1>
<p>La clase Java <b>Stackjava.util.Stack</b> , es una estructura de datos de pila clásica. Puede insertar elementos en la parte superior de una pila de Java y volver a abrirlos, lo que significa leer y eliminar los elementos de la parte superior de la pila. </p>
<p>Un Stack posee varios método propios, que le permiten gestionar los elementos agregados de una forma diferente a una interfaz List.</p>
<p>Como ejemplo utilizaremos una clase “Usuario”, de la cual crearemos instancias que se irán agregando a la cola. Necesitaremos una clase main para crear los métodos y ejecutarlos.</p>
<b>Clase Usuario.</b><br>
<pre style='text-align: left; border: 1px dashed #008DEF; line-height: 18px; padding: 15px; font-size: 13px; font-family:'Courier New', Courier, monospace; overflow: auto;'><span style='color:#3F5FBF'>/**
*
* @author carlos
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>class</span> Usuario <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Atributos
</span> <span style='font-weight:bold;color:#7B0052;'>private</span> <span style='font-weight:bold;color:#7B0052;'>int</span> id;
<span style='font-weight:bold;color:#7B0052;'>private</span> String nombre;
<span style='font-weight:bold;color:#7B0052;'>private</span> String password;
<span style='color:#3F7F5F'>//Constructores
</span> <span style='font-weight:bold;color:#7B0052;'>public</span> Usuario() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> Usuario(<span style='font-weight:bold;color:#7B0052;'>int</span> id, String nombre, String password) <span style='font-weight:bold;color:#D3171B'>{</span>
this.id = id;
this.nombre = nombre;
this.password = password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='color:#3F7F5F'>//Getters y Setters
</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>int</span> getId() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> id;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setId(<span style='font-weight:bold;color:#7B0052;'>int</span> id) <span style='font-weight:bold;color:#D3171B'>{</span>
this.id = id;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> String getNombre() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> nombre;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setNombre(String nombre) <span style='font-weight:bold;color:#D3171B'>{</span>
this.nombre = nombre;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> String getPassword() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setPassword(String password) <span style='font-weight:bold;color:#D3171B'>{</span>
this.password = password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span></pre>
<br>
<b>Clase main “StackApp” que será el ejecutable. </b>
<pre style="text-align: left; border: 1px dashed #008DEF; line-height: 18px; padding: 15px; font-size: 13px; font-family:'Courier New', Courier, monospace; overflow: auto;"><span style='font-weight:bold;color:#7B0052;'>import</span> java.util.Stack;
<span style='color:#3F5FBF'>/**
*
* @author carlos
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>class</span> StackApp <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F5FBF'>/**
* @param args the command line arguments
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> main(String[] args) <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Rellenando Pila.
</span> Stack<Usuario> usuarios = usuarios();
<span style='color:#3F7F5F'>//Método propio de una pila, obtener el último elemento agregado
</span> System.out.println(<span style='color:#2A00FF'>"Último elemento: "</span> + usuarios.peek().getNombre());
<span style='color:#3F7F5F'>//Llamando al método para imprimir
</span> print(usuarios);
<span style='color:#3F7F5F'>//Llamando al método para vaciar.
</span> vaciar(usuarios);
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='color:#3F7F5F'>//Utilizamos un método para cargar los elementos en la pila
</span> <span style='color:#3F7F5F'>//El método retorna una pila de "Usuarios"
</span> <span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> Stack<Usuario> usuarios()<span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Se instancia utilizando new Stack<>()
</span> Stack<Usuario> usuarios = <span style='font-weight:bold;color:#7B0052;'>new</span> Stack<>();
<span style='color:#3F7F5F'>//Se agregan registros de usuario a la pila.
</span> <span style='color:#3F7F5F'>//Hay diferentes formas de agregar elementos a la pila
</span> <span style='color:#3F7F5F'>//Utilizando add
</span> usuarios.add(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(1, <span style='color:#2A00FF'>"Jorge"</span>, <span style='color:#2A00FF'>"jorge2019"</span>));
<span style='color:#3F7F5F'>//Utilizando push, método propia de una pila
</span> usuarios.push(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(2, <span style='color:#2A00FF'>"Anibal"</span>, <span style='color:#2A00FF'>"pass123"</span>));
usuarios.push(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(3, <span style='color:#2A00FF'>"Miguel"</span>, <span style='color:#2A00FF'>"mg2020"</span>));
usuarios.push(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(4, <span style='color:#2A00FF'>"Ariel"</span>, <span style='color:#2A00FF'>"arl2220"</span>));
usuarios.push(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(5, <span style='color:#2A00FF'>"Sonia"</span>, <span style='color:#2A00FF'>"sn1980"</span>));
<span style='color:#3F7F5F'>//Retornamos una pila de usuario.
</span> <span style='font-weight:bold;color:#7B0052;'>return</span> usuarios;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> vaciar(Stack<Usuario> usuarios)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"Vaciando pila"</span>);
System.out.println(<span style='color:#2A00FF'>"_____________"</span>);
<span style='color:#3F7F5F'>//Se utiliza el método pop() para vaciar la pila
</span> <span style='color:#3F7F5F'>//Se recorre la pila hasta que quede vacío
</span> <span style='font-weight:bold;color:#7B0052;'>while</span>(!usuarios.isEmpty())<span style='font-weight:bold;color:#D3171B'>{</span>
usuarios.pop();
<span style='font-weight:bold;color:#D3171B'>}</span>
System.out.println(<span style='color:#2A00FF'>"Pila vacía."</span>);
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='color:#3F7F5F'>//Método para imprimir
</span> <span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> print(Stack<Usuario> usuarios)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"Imprimiendo datos de Usuarios"</span>);
System.out.println(<span style='color:#2A00FF'>"_____________________________"</span>);
<span style='color:#3F7F5F'>//Utilizamos foreach para acceder a cada registro usuario y mostrarlo
</span> <span style='font-weight:bold;color:#7B0052;'>for</span>(Usuario u: usuarios)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"Id: "</span> + u.getId());
System.out.println(<span style='color:#2A00FF'>"Nombre: "</span> + u.getNombre());
System.out.println(<span style='color:#2A00FF'>"Password: "</span> + u.getPassword());
System.out.println(<span style='color:#2A00FF'>"_________________________________"</span>);
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span></pre>
<b>Resultado del ejemplo.</b>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18ooesC96p-oW18HN2VXBGqdUWbRKhDk9xitxUVYoQqjnEST68dhamXHIgHqX7c8UFPLbKdVlD02AgUsEAI1bQm0efmhKbddkwVjzemPRbBYykqzqfG20aexVsvYmlRpm0h9YB0Ckfzk/s1600/stack_app.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18ooesC96p-oW18HN2VXBGqdUWbRKhDk9xitxUVYoQqjnEST68dhamXHIgHqX7c8UFPLbKdVlD02AgUsEAI1bQm0efmhKbddkwVjzemPRbBYykqzqfG20aexVsvYmlRpm0h9YB0Ckfzk/s1600/stack_app.png" data-original-width="365" data-original-height="505" /></a></div>
Arielhttp://www.blogger.com/profile/12835773285048332502noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-22749722475756810922019-10-18T10:08:00.001-03:002019-11-20T08:34:40.779-03:00Java básico 066. Uso de List y ArrayList con registros<h1>Utilización de la interfaz Java List</h1>
<p>La interfaz <b>Java List</b>, almacena una secuencia ordenada de objetos. Los elementos contenidos en un Java List se pueden insertar, acceder, iterar y eliminar de acuerdo con el orden en que aparecen internamente en el Java List. El orden de los elementos es la razón por la cual esta estructura de datos se denomina Lista.</p>
<p>Cada elemento en un Java List tiene un índice. El primer elemento en el List tiene índice 0, el segundo elemento tiene índice 1. Se puede acceder a cualquier elemento utilizando muchos de los método con que cuenta esta interfaz.</p>
<p>Puede agregar cualquier objeto Java a un List. Por lo general se utiliza para almacenar registros provenientes de base de datos u otras colecciones. Ya que nos permite acceder a ellas de forma sencilla.
Como <b>ejemplo</b> utilizaremos una clase que llamaremos “Usuario” y una clase con el método “main” para trabajar con la lista utilizando métodos que crearemos.</p>
<b>Clase “Usuario”</b><br>
<pre style="text-align: left; border: 1px dashed #008DEF; line-height: 18px; padding: 15px; font-size: 13px; font-family:'Courier New', Courier, monospace; overflow: auto;"><span style='color:#3F5FBF'>/**
*
* @author carlos
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>class</span> Usuario <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Atributos
</span> <span style='font-weight:bold;color:#7B0052;'>private</span> <span style='font-weight:bold;color:#7B0052;'>int</span> id;
<span style='font-weight:bold;color:#7B0052;'>private</span> String nombre;
<span style='font-weight:bold;color:#7B0052;'>private</span> String password;
<span style='color:#3F7F5F'>//Constructores
</span> <span style='font-weight:bold;color:#7B0052;'>public</span> Usuario() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> Usuario(<span style='font-weight:bold;color:#7B0052;'>int</span> id, String nombre, String password) <span style='font-weight:bold;color:#D3171B'>{</span>
this.id = id;
this.nombre = nombre;
this.password = password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='color:#3F7F5F'>//Getters y Setters
</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>int</span> getId() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> id;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setId(<span style='font-weight:bold;color:#7B0052;'>int</span> id) <span style='font-weight:bold;color:#D3171B'>{</span>
this.id = id;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> String getNombre() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> nombre;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setNombre(String nombre) <span style='font-weight:bold;color:#D3171B'>{</span>
this.nombre = nombre;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> String getPassword() <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>return</span> password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>void</span> setPassword(String password) <span style='font-weight:bold;color:#D3171B'>{</span>
this.password = password;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span></pre>
<br>
<b>Clase main “UsuarioApp”. Tomar en cuenta las importaciones.</b>
<pre style="text-align: left; border: 1px dashed #008DEF; line-height: 18px; padding: 15px; font-size: 13px; font-family:'Courier New', Courier, monospace; overflow: auto;"><span style='font-weight:bold;color:#7B0052;'>import</span> java.util.ArrayList;
<span style='font-weight:bold;color:#7B0052;'>import</span> java.util.List;
<span style='color:#3F5FBF'>/**
*
* @author carlos
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>class</span> UsuarioApp <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F5FBF'>/**
* @param args the command line arguments
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> main(String[] args) <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Llamamos a los métodos creados más abajo.
</span> List<Usuario> usuarios = usuarios();
print(usuarios);
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='color:#3F7F5F'>//Método cargar datos en Lista
</span> <span style='color:#3F7F5F'>//El método retorna un objeto tipo List<Usuario>, una lista de usuarios
</span> <span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> List<Usuario> usuarios()<span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F7F5F'>//Se instancia utilizando ArrayList.
</span> List<Usuario> usuarios = <span style='font-weight:bold;color:#7B0052;'>new</span> ArrayList<>();
<span style='color:#3F7F5F'>//Se agregan registros de usuario a la lista.
</span> <span style='color:#3F7F5F'>//Cada registro es una instancia de la clase Usuario
</span> usuarios.add(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(1, <span style='color:#2A00FF'>"Jorge"</span>, <span style='color:#2A00FF'>"jorge2019"</span>));
usuarios.add(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(2, <span style='color:#2A00FF'>"Anibal"</span>, <span style='color:#2A00FF'>"pass123"</span>));
usuarios.add(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(3, <span style='color:#2A00FF'>"Miguel"</span>, <span style='color:#2A00FF'>"mg2020"</span>));
usuarios.add(<span style='font-weight:bold;color:#7B0052;'>new</span> Usuario(4, <span style='color:#2A00FF'>"Ariel"</span>, <span style='color:#2A00FF'>"arl2220"</span>));
<span style='color:#3F7F5F'>//Retornamos la lista usuario.
</span> <span style='font-weight:bold;color:#7B0052;'>return</span> usuarios;
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='color:#3F7F5F'>//Método para imprimir
</span> <span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> print(List<Usuario> usuarios)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"Imprimiendo datos de Usuarios"</span>);
System.out.println(<span style='color:#2A00FF'>"_____________________________"</span>);
<span style='color:#3F7F5F'>//Utilizamos foreach para acceder a cada registro usuario y mostrarlo
</span> <span style='font-weight:bold;color:#7B0052;'>for</span>(Usuario u: usuarios)<span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"Id: "</span> + u.getId());
System.out.println(<span style='color:#2A00FF'>"Nombre: "</span> + u.getNombre());
System.out.println(<span style='color:#2A00FF'>"Password: "</span> + u.getPassword());
System.out.println(<span style='color:#2A00FF'>"_________________________________"</span>);
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span></pre>
<b>Resultado.</b>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDa8WwFifVaEVWuMH0hdcoxRr-CqbASDbb6G6Skv9_Q5JfBFcI_73p1V8aW3-hUB9wOPx4_BUvBW15o_qTf9nf1xf_vfoC_6bQIdMHbZoSG5RbWMezJU1jawKAbBd4SQu95SskW-Ju1w4/s1600/resultadoList.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDa8WwFifVaEVWuMH0hdcoxRr-CqbASDbb6G6Skv9_Q5JfBFcI_73p1V8aW3-hUB9wOPx4_BUvBW15o_qTf9nf1xf_vfoC_6bQIdMHbZoSG5RbWMezJU1jawKAbBd4SQu95SskW-Ju1w4/s320/resultadoList.png" width="320" height="307" data-original-width="369" data-original-height="354" /></a></div>Arielhttp://www.blogger.com/profile/12835773285048332502noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-6024847401948002862019-10-16T08:41:00.000-03:002019-11-20T08:36:35.448-03:00Java básico 065. Factorial de Números de 1 al 10.<h1><b>Ejercicio:</b> Realizar el factorial de números de 1 al 10.</h1>
<pre style='text-align: left; border: 1px dashed #008DEF; line-height: 18px; padding: 15px; font-size: 13px; font-family:'Courier New', Courier, monospace; overflow: auto;'><span style='color:#3F5FBF'>/**
*
* @author carlos
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>class</span> Factoriales <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='color:#3F5FBF'>/**
* @param args the command line arguments
*/</span>
<span style='font-weight:bold;color:#7B0052;'>public</span> <span style='font-weight:bold;color:#7B0052;'>static</span> <span style='font-weight:bold;color:#7B0052;'>void</span> main(String[] args) <span style='font-weight:bold;color:#D3171B'>{</span>
System.out.println(<span style='color:#2A00FF'>"Factorial de números de 1 al 10"</span>);
System.out.println(<span style='color:#2A00FF'>"_______________________________"</span>);
<span style='font-weight:bold;color:#7B0052;'>long</span> factorial = 1;
<span style='font-weight:bold;color:#7B0052;'>for</span> (<span style='font-weight:bold;color:#7B0052;'>int</span> num = 1; num <= 10; num++) <span style='font-weight:bold;color:#D3171B'>{</span>
<span style='font-weight:bold;color:#7B0052;'>for</span> (<span style='font-weight:bold;color:#7B0052;'>int</span> i = num; i > 0; i--) <span style='font-weight:bold;color:#D3171B'>{</span>
factorial = factorial * i;
<span style='font-weight:bold;color:#D3171B'>}</span>
System.out.println(<span style='color:#2A00FF'>"El factorial de "</span> + num + <span style='color:#2A00FF'>" es: "</span> + factorial);
factorial = 1;<span style='color:#3F7F5F'>//Reiniciar el valor del factorial por cada vuelta
</span> <span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span>
<span style='font-weight:bold;color:#D3171B'>}</span></pre>
<br>
<b>Resultado.</b>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9AezWX5V6_DZW5FYJGSugHlLFQhUP9Bz93OiLVW49qwTmskWWXdADqLydnJTG5cBTld0k-EtgFO83rthlEb6yymP-tBq_jxGp-94qGecckr_0xfGztBLFMtdXm0WMeChZiXnKVW3c17I/s1600/resultado.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9AezWX5V6_DZW5FYJGSugHlLFQhUP9Bz93OiLVW49qwTmskWWXdADqLydnJTG5cBTld0k-EtgFO83rthlEb6yymP-tBq_jxGp-94qGecckr_0xfGztBLFMtdXm0WMeChZiXnKVW3c17I/s400/resultado.png" width="400" height="303" data-original-width="320" data-original-height="242" /></a></div>Arielhttp://www.blogger.com/profile/12835773285048332502noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-8725276995457243032014-12-06T09:12:00.000-03:002019-11-20T08:40:51.951-03:00Uso básico de elementos Swing con NetBeans – 35 – Uso de JToolBar, barra de herramientas.<h1>Utilización de JToolBar, modo diseño en Netbeans</h1>
<p style="text-align:justify">En este ejemplo sencillo veremos la utilidad de un “JToolBar”, objeto que puede contener botones u otros elementos, tiene ciertas ventajas como la posibilidad de flotar de forma libre o ubicarse fácilmente en cualquiera de los cuatro costados del formulario desplazando automáticamente otros elementos. En este ejemplo nuestra “Barra de Herramientas” contendrá cinco botones, cada una al hacer clic sobre ellas agregará una línea de texto al “Área de texto” indicando la procedencia del clic. En modo diseño podremos ver la distribución de los elementos. El nombre que le demos al formulario es a criterio de cada uno. Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcB4wOY_KrVO6XReGb2ubKDLjs5jO0fKDBuUgfWmx8HlC_0bcTT1GUtZoJ5koJUAG2q7FHFcs46mqUdYP8WBQIssUJyKqZyGykPTEjkddxS1IaMHOmZ_oGMpxPvwiPDnmBJlzvNC1MRnxA/s1600/usoJToolBar01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcB4wOY_KrVO6XReGb2ubKDLjs5jO0fKDBuUgfWmx8HlC_0bcTT1GUtZoJ5koJUAG2q7FHFcs46mqUdYP8WBQIssUJyKqZyGykPTEjkddxS1IaMHOmZ_oGMpxPvwiPDnmBJlzvNC1MRnxA/s320/usoJToolBar01.png"></a></div>
<p style="text-align:justify">Para este ejemplo necesitamos una única importación y el método de inicio habitual.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete<br /></span><br /><span class="keyword">import</span> java.awt.Color;<span class="comment">//Importación<br /></span><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJToolBar <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJToolBar<br /> */</span><br /> <span class="keyword">public</span> UsoJToolBar() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de arranque<br /></span> }
</pre>
</body>
</html>
<p style="text-align:justify">El único método que necesitamos es “inicio()” la cual inicializará ciertas propiedades del área de texto como ya veremos.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Pequeños ajuste para el Area de Texto.<br /></span> <span class="comment">//Los ajustes para la barra de herramientas se hacen en modo diseño.<br /></span> jTextA.setEditable(<span class="keyword">false</span>);<br /> jTextA.setBackground(Color.lightGray);<br /> jTextA.setForeground(Color.BLUE);<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Para los botones se utiliza el evento “ActionPerformed” que permitirá ejecutar los métodos. En las primeras guías de la serie vimos cómo se hacer para relacionar un evento con un objeto visual.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> btn01ActionPerformed(java.awt.event.ActionEvent evt) { <br /> jTextA.append(<span class="string">"Clic botón Abrir..."</span> + <span class="string">"\n"</span>);<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> btn02ActionPerformed(java.awt.event.ActionEvent evt) { <br /> jTextA.append(<span class="string">"Clic botón Buscar..."</span> + <span class="string">"\n"</span>);<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> btn03ActionPerformed(java.awt.event.ActionEvent evt) { <br /> jTextA.append(<span class="string">"Clic botón Consultar..."</span> + <span class="string">"\n"</span>);<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> btn04ActionPerformed(java.awt.event.ActionEvent evt) { <br /> jTextA.append(<span class="string">"Clic botón Imprimir..."</span> + <span class="string">"\n"</span>);<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> btn05ActionPerformed(java.awt.event.ActionEvent evt) { <br /> jTextA.append(<span class="string">"Clic botón Ayuda..."</span> + <span class="string">"\n"</span>);<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a este punto podremos ejecutar y probar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida).</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzyS-S27qix9ylImkA7541efQ2Apy3bIgK0WrFeKirlcghFC6eSLAAwl1M4kME0pNjG3fCoEST7PGfKQcbmPK3Wp4EGAGeI-TmVGI7PHeWGGXIKTlLfNpUZrMUnlenBgS8sA9UIjGPipnr/s1600/usoJToolBar02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzyS-S27qix9ylImkA7541efQ2Apy3bIgK0WrFeKirlcghFC6eSLAAwl1M4kME0pNjG3fCoEST7PGfKQcbmPK3Wp4EGAGeI-TmVGI7PHeWGGXIKTlLfNpUZrMUnlenBgS8sA9UIjGPipnr/s1600/usoJToolBar02.png"></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiltX-hpSxllsoqmEfLRJdkiH8sDX7yKr6_bq1GWcf8VVnJh8_jHjglYjQC5uj7ZIBnoymL1WnK6l7E2oEiDwdmpYcTNJJ_hscA17XsNcG_QoaB5Zpiqq45RPEFuQSoEqnTna9MAIj3B3pi/s1600/usoJToolBar03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiltX-hpSxllsoqmEfLRJdkiH8sDX7yKr6_bq1GWcf8VVnJh8_jHjglYjQC5uj7ZIBnoymL1WnK6l7E2oEiDwdmpYcTNJJ_hscA17XsNcG_QoaB5Zpiqq45RPEFuQSoEqnTna9MAIj3B3pi/s1600/usoJToolBar03.png"></a></div> Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com2tag:blogger.com,1999:blog-4493955538939889481.post-17201367740291272102014-11-28T10:38:00.000-03:002019-11-20T08:42:52.954-03:00Uso básico de elementos Swing con NetBeans – 34 – Uso de JTextArea, cambio de fuente y tamaño de fuente.<h1>Trabajando con JTextArea.</h1>
<p style="text-align:justify">Ampliando el ejemplo anterior, veremos cómo obtener la lista de fuentes del sistema y aplicarlas a nuestro Área de Texto, también veremos cómo ajustar el tamaño de fuentes. El resto es totalmente igual al del ejemplo anterior. Para mostrar la lista de fuentes y tamaño de fuente utilizamos combos. Es necesario limpiar los ítems del “model” en modo diseño.</p>
<p style="text-align:justify">El nombre que le demos al formulario es a criterio de cada uno. Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6pd5h9gLt6jgBvDH5QMSkFB7KOfNoMj8jA_xGFGdfBNz1M7HFrvciEPUQ_b2rOU-qK4u5Evk739r9zPgwE1Y2y0KmF4Jh_ltRjAXI0rDMQTFzQZBikJlRBnRRBfjeAW4LVdN4JH8SRPvR/s1600/EjJTextArea001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6pd5h9gLt6jgBvDH5QMSkFB7KOfNoMj8jA_xGFGdfBNz1M7HFrvciEPUQ_b2rOU-qK4u5Evk739r9zPgwE1Y2y0KmF4Jh_ltRjAXI0rDMQTFzQZBikJlRBnRRBfjeAW4LVdN4JH8SRPvR/s320/EjJTextArea001.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete de fuente<br /></span><br /><span class="keyword">import</span> java.awt.Font;<span class="comment">//Importación<br /></span><span class="keyword">import</span> java.awt.GraphicsEnvironment;<br /><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> EjJTextArea <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form EjJTextArea<br /> */</span><br /> <span class="keyword">public</span> EjJTextArea() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de inicio<br /></span> }<br />
</pre>
</body>
</html>
<p style="text-align:justify">Para el ejemplo utilizamos varios métodos que cumplen funciones específicas. El nombre que le damos a cada método nos da una idea de que función cumple. El método “inicio()” por ejemplo arranca desde el constructor del JFrame y nos permite inicializar algunas propiedades del área de texto. Se agregan comentarios para indicar la funciona de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//-Establecemos propiedades para el JTextArea-<br /></span> <span class="comment">//Establecemos tipo de fuente predeterminado, texto itálico, tamaño 15<br /></span> jTex.setFont(<span class="keyword">new</span> Font(<span class="string">"Default"</span>, Font.PLAIN, <span class="literal">15</span>));<br /> <span class="comment">//Especificamos que el texto se ajusta al tamaño del Área de texto<br /></span> jTex.setLineWrap(<span class="keyword">true</span>);<br /> jTex.setWrapStyleWord(<span class="keyword">true</span>);<br /> <span class="comment">//Hacemos que el área de texto no sea editable<br /></span> jTex.setEditable(<span class="keyword">false</span>);<br /> <br /> <span class="comment">//Configuramos la lista de tipo de fuentes y tamaño<br /></span> <span class="comment">//Obtenemos la lista de fuentes del sistema utilizando getAvailableFontFamilyNames()<br /></span> GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();<br /> String[] fonts = ge.getAvailableFontFamilyNames();<br /> <br /> <span class="comment">//Agregamos cada nombre de fuente a nuestro combo.<br /></span> <span class="keyword">for</span> (String string : fonts) { <br /> fuenteTipo.addItem(string);<br /> }<br /> <br /> <span class="comment">//Agregamos los tamaños de fuente, de 1 al 70<br /></span> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="literal">1</span>; i < <span class="literal">71</span>; i++) {<br /> fuenteTam.addItem(i);<br /> }<br /> <br /> <span class="comment">//Inicializamos el tamaño de fuente en 15.<br /></span> fuenteTam.setSelectedIndex(<span class="literal">14</span>); <br /> }<br /> <br /> <span class="comment">//Método para agregar texto al área de texto.<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> agregar(){<br /> <span class="comment">//Verificamos que el campo de texto no este vacío<br /></span> <span class="keyword">if</span>(!jT.getText().isEmpty()){<br /> <span class="comment">//Para agregar textos se utiliza append. "\n" indica salto de línea.<br /></span> jTex.append(jT.getText() + <span class="string">"\n"</span>);<br /> <span class="comment">//Limpiamos el campo JTextField.<br /></span> jT.setText(<span class="keyword">null</span>);<br /> }<br /> }<br /> <br /> <span class="comment">//Método para manejar los cambios de fuente y tamaño<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> tipoFuente(){<br /> <span class="comment">//Obtenemos tipo y tamaño.<br /></span> String toString = fuenteTipo.getSelectedItem().toString();<br /> <span class="keyword">int</span> selectedIndex = fuenteTam.getSelectedIndex() + <span class="literal">1</span>;<br /> jTex.setFont(<span class="keyword">new</span> Font(toString, Font.PLAIN, selectedIndex));<br /> }<br />}
</pre>
</body>
</html>
<p style="text-align:justify">En relación a los eventos, tanto para el botón agregar como en los dos combos utilizaremos el “ActionPerformed” que permitirá ejecutar los métodos. En las primeras guías de la serie vimos cómo se hacer para relacionar un evento con un objeto visual.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> agregarActionPerformed(java.awt.event.ActionEvent evt) { <br /> agregar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> fuenteTipoActionPerformed(java.awt.event.ActionEvent evt) { <br /> tipoFuente();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> fuenteTamActionPerformed(java.awt.event.ActionEvent evt) { <br /> tipoFuente();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a este punto podremos ejecutar y probar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9_Ry7lViqKrZZXD6E4Bgs2qfA7y7m1js3abVJfn-fH2VeK7WTYrA3F2Qu9HmBSYlb1DrN8jmKG1l70KumcBodk3nsFq3ffsJU3BVBTO8TjHJM5ZxUEHogsIjdn1b6SUwwwRjbeaVF8_Bn/s1600/EjJTextArea002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9_Ry7lViqKrZZXD6E4Bgs2qfA7y7m1js3abVJfn-fH2VeK7WTYrA3F2Qu9HmBSYlb1DrN8jmKG1l70KumcBodk3nsFq3ffsJU3BVBTO8TjHJM5ZxUEHogsIjdn1b6SUwwwRjbeaVF8_Bn/s1600/EjJTextArea002.png"></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXdc2Nw2mHSQWKX36VHe3bdcMRnolxSxv82wEreiuAo68XhyPi_q5MFUmj4tOIvl_8DQPEyJrUd7G7Rk_FUq5cgp5efsURSUXQZpkUHWi73RHhXg_3M6S5-G0oayAeLkw9Xj3R4bSUVaAh/s1600/EjJTextArea003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXdc2Nw2mHSQWKX36VHe3bdcMRnolxSxv82wEreiuAo68XhyPi_q5MFUmj4tOIvl_8DQPEyJrUd7G7Rk_FUq5cgp5efsURSUXQZpkUHWi73RHhXg_3M6S5-G0oayAeLkw9Xj3R4bSUVaAh/s1600/EjJTextArea003.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-48777639533405106742014-11-20T09:58:00.000-03:002019-11-20T08:43:56.589-03:00Uso básico de elementos Swing con NetBeans – 33 – Uso de JTextArea, agregar elementos desde JTextField.<h1>Uso básico del elemento JTextArea</h1>
<p style="text-align:justify">Anteriormente ya vimos la utilizando de un “JTextArea” o Área de Texto, en esta oportunidad daremos un pequeño ejemplo de cómo agregar texto desde un JTextField. El nombre que le demos al formulario es a criterio de cada uno. Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQTTvgIdzj2Ok3E4cantGVgWyxKdgRwh7BM1CMVZAry9u8nR5Ppi0NU4vfcvWCLULlUet8qAY54PZ5_8RBNFZFbTYUHsnNEtG-Krlk8kXvb6zCr8-VODTFm9kM1XfQUiPrglRt5gjCruRc/s1600/EjJTextArea01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQTTvgIdzj2Ok3E4cantGVgWyxKdgRwh7BM1CMVZAry9u8nR5Ppi0NU4vfcvWCLULlUet8qAY54PZ5_8RBNFZFbTYUHsnNEtG-Krlk8kXvb6zCr8-VODTFm9kM1XfQUiPrglRt5gjCruRc/s400/EjJTextArea01.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete de fuente<br /></span><br /><span class="keyword">import</span> java.awt.Font;<span class="comment">//Importación<br /></span><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> EjJTextArea <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form EjJTextArea<br /> */</span><br /> <span class="keyword">public</span> EjJTextArea() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de inicio<br /></span> }
</pre>
</body>
</html>
<p style="text-align:justify">Para el ejemplo utilizamos varios métodos que cumplen funciones específicas. El nombre que le damos a cada método nos da una idea de que función cumple. El método “inicio()” por ejemplo arranca desde el constructor del JFrame y nos permite inicializar algunas propiedades del área de texto. Se agregan comentarios para indicar la funciona de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//-Establecemos propiedades para el JTextArea-<br /></span> <span class="comment">//Establecemos tipo de fuente predeterminado, texto itálico, tamaño 15<br /></span> jTex.setFont(<span class="keyword">new</span> Font(<span class="string">"Default"</span>, Font.ITALIC, <span class="literal">15</span>));<br /> <span class="comment">//Especificamos que el texto se ajusta al tamaño del Área de texto<br /></span> jTex.setLineWrap(<span class="keyword">true</span>);<br /> jTex.setWrapStyleWord(<span class="keyword">true</span>);<br /> <span class="comment">//Hacemos que el área de texto no sea editable<br /></span> jTex.setEditable(<span class="keyword">false</span>);<br /> }<br /> <br /> <span class="comment">//Método para agregar texto al área de texto.<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> agregar(){<br /> <span class="comment">//Verificamos que el campo de texto no este vacío<br /></span> <span class="keyword">if</span>(!jT.getText().isEmpty()){<br /> <span class="comment">//Para agregar textos se utiliza append. "\n" indica salto de línea.<br /></span> jTex.append(jT.getText() + <span class="string">"\n"</span>);<br /> <span class="comment">//Limpiamos el campo JTextField.<br /></span> jT.setText(<span class="keyword">null</span>);<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">En este ejemplo tenemos un solo botón denominado “Agregar” la cual utilizará el evento “ActionPerformed” que permitirá ejecutar el método “agregar()”. En las primeras guías de la serie vimos cómo se hacer para relacionar un evento con un objeto visual.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> agregarActionPerformed(java.awt.event.ActionEvent evt) { <br /> agregar();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a este punto podremos ejecutar y probar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida).</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3OaRCbCUYbq0L3qKN77WQLOwmGb-bXS0vHIpVxBczaOXrRuijMbN8D7LV-EiRvz79AxBQcdq0MLLVR7oAk2kikEKbbzFe2A1-keA314zyDB08mPzy8Jc6SXRFC8OlM7W9VgDypUyfKufj/s1600/EjJTextArea02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3OaRCbCUYbq0L3qKN77WQLOwmGb-bXS0vHIpVxBczaOXrRuijMbN8D7LV-EiRvz79AxBQcdq0MLLVR7oAk2kikEKbbzFe2A1-keA314zyDB08mPzy8Jc6SXRFC8OlM7W9VgDypUyfKufj/s1600/EjJTextArea02.png"></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-30423392659237974442014-11-11T10:52:00.000-03:002019-11-29T15:41:51.884-03:00Uso básico de elementos Swing con NetBeans – 32 – Uso de JTable, agregar y eliminar elementos de tabla.<h1>Trabajando con JTable en Java</h1>
<p style="text-align:justify">Las tablas son uno de los elementos más utilizados dentro de cualquier lenguaje de programación, se puede utilizar para desplegar lista de datos similares ordenados de una forma específica. Su uso es bastante amplio pues es bastante versátil. En este ejemplo utilizaremos la tabla para mostrar datos ingresados por el usuario. Con esto podremos ver como se agregan y eliminan filas de una tabla. Como agregado veremos cómo agregar un JCheckBox a la tabla utilizando CellEditor y CellRenderer.</p>
<p style="text-align:justify">La tabla se puede manipular en modo diseño, se especifican los nombres y cantidad de columnas haciendo clic derecho sobre la tabla y accediendo a “Contenidos de tabla (Table Contents)”. Para el combo agregamos “Sí” y “No” en modo diseño desde la propiedad del objeto y en el apartado “model”. Agregar icono para los botones es opcional.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEOkDVrbolFqDLwqe8ySMbHn8bC7UwoPHyWJbeV2fQljReklj7KVxOnMVGeg-ymBsnxiSZCPEVzCtDZlcuz1Vzb-HXuUgMutkZFVxalGt8Qm4soxkPEyNm4O1w_z8NW7Sb7WyaOkQib_eX/s1600/JTable001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEOkDVrbolFqDLwqe8ySMbHn8bC7UwoPHyWJbeV2fQljReklj7KVxOnMVGeg-ymBsnxiSZCPEVzCtDZlcuz1Vzb-HXuUgMutkZFVxalGt8Qm4soxkPEyNm4O1w_z8NW7Sb7WyaOkQib_eX/s400/JTable001.png" /></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame y las variables de clase.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete<br /></span><br /><span class="keyword">import</span> java.awt.Color;<br /><span class="keyword">import</span> java.awt.Component;<br /><span class="keyword">import</span> javax.swing.DefaultCellEditor;<br /><span class="keyword">import</span> javax.swing.JCheckBox;<br /><span class="keyword">import</span> javax.swing.JComponent;<span class="comment">//Importaciones<br /></span><span class="keyword">import</span> javax.swing.JOptionPane;<br /><span class="keyword">import</span> javax.swing.JTable;<br /><span class="keyword">import</span> javax.swing.table.DefaultTableModel;<br /><span class="keyword">import</span> javax.swing.table.TableCellRenderer;<br /><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJTable <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJTable<br /> */</span><br /> <span class="keyword">public</span> UsoJTable() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de inicio<br /></span> }<br /> <span class="keyword">private</span> DefaultTableModel model;<span class="comment">//Modelo para tabla<br /></span> <span class="keyword">private</span> <span class="keyword">int</span> sel;<span class="comment">//Variable para obtener fila seleccionada de tabla.</span>
</pre>
</body>
</html>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-7915126032336125"
data-ad-slot="5152455804"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p style="text-align:justify">Para el ejemplo utilizamos varios métodos que cumplen funciones específicas. El nombre que le damos a cada método nos da una idea de que función cumple. El método “inicio()” por ejemplo arranca desde el constructor del JFrame y nos permite inicializar algunas propiedades de la tabla. Se agregan comentarios para indicar la funciona de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){ <br /> <span class="comment">//Método para configurar el DefaultTableModel de la tabla.<br /></span> <span class="comment">//Especificamos el tamaño de cada columna<br /></span> jTb.getColumnModel().getColumn(<span class="literal">0</span>).setPreferredWidth(<span class="literal">100</span>);<br /> jTb.getColumnModel().getColumn(<span class="literal">1</span>).setPreferredWidth(<span class="literal">100</span>);<br /> jTb.getColumnModel().getColumn(<span class="literal">2</span>).setPreferredWidth(<span class="literal">50</span>);<br /> jTb.getColumnModel().getColumn(<span class="literal">3</span>).setPreferredWidth(<span class="literal">100</span>);<br /> jTb.getColumnModel().getColumn(<span class="literal">4</span>).setPreferredWidth(<span class="literal">100</span>);<br /> <span class="comment">//Indicamos el DefaultTableModel de nuestra tabla<br /></span> model = (DefaultTableModel) jTb.getModel();<br /> <span class="comment">//Indicamos el número de filas<br /></span> model.setNumRows(<span class="literal">0</span>); <br /> } <br /> <br /> <span class="comment">//Método para agregar datos a la tabla.<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> agregar(){<br /> <span class="comment">//También mostramos como agregar un JCheckBox a la tabla<br /></span> JCheckBox check = <span class="keyword">new</span> JCheckBox();<br /> <span class="comment">//Comprobamos que los campos de datos no esten vacíos<br /></span> <span class="keyword">if</span>(!nombre.getText().isEmpty() || !apellido.getText().isEmpty() ||<br /> !edad.getText().isEmpty() || !profesion.getText().isEmpty()){ <br /> <span class="comment">//Utilizamos un boolean para obtener el valor del combo.<br /></span> <span class="keyword">boolean</span> rp = casado.getSelectedItem().toString().equals(<span class="string">"Sí"</span>); <br /> <span class="comment">//Utilizamos try para la controlar posibles errores de conversión.<br /></span> <span class="keyword">try</span> {<br /> <span class="comment">//Convertimos en entero lo obtenido del campo edad.<br /></span> <span class="keyword">int</span> edd = Integer.parseInt(edad.getText());<br /> <span class="comment">//agregamos los datos a la tabla utilizando Object[]<br /></span> model.addRow(<span class="keyword">new</span> Object[]{<br /> nombre.getText(),apellido.getText(),edd, profesion.getText(),rp<br /> }); <br /> limpiar();<br /> } <span class="keyword">catch</span> (NumberFormatException e) {<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Edad debe ser numérico"</span>);<br /> }<br /> <br /> }<br /> <span class="comment">//Agregamos el JCheckBox utilizando CellEditor y la clase CellRenderer creado más abajo<br /></span> jTb.getColumnModel().getColumn(<span class="literal">4</span>).setCellEditor(<span class="keyword">new</span> DefaultCellEditor(check));<br /> jTb.getColumnModel().getColumn(<span class="literal">4</span>).setCellRenderer(<span class="keyword">new</span> Render_CheckBox());<br /> }<br /> <span class="comment">//Método para obtener la fila seleccionada de la tabla<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> seleccion(){<br /> <span class="keyword">if</span>(jTb.getRowCount() > <span class="literal">0</span> ){<br /> sel = jTb.getSelectedRow();<br /> }<br /> }<br /> <span class="comment">//Método para obtener la fila seleccionada de la tabla.<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> eliminar(){<br /> <span class="keyword">if</span>(sel >= <span class="literal">0</span>){<br /> model.removeRow(sel);<br /> sel = -<span class="literal">1</span>;<br /> }<br /> <span class="keyword">else</span>{<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Selecciona una fila."</span>);<br /> }<br /> }<br /> <br /> <span class="comment">//Método para limpiar campos después de agregar los datos a la tabla<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> limpiar(){<br /> nombre.setText(<span class="keyword">null</span>);<br /> apellido.setText(<span class="keyword">null</span>);<br /> edad.setText(<span class="keyword">null</span>);<br /> profesion.setText(<span class="keyword">null</span>);<br /> casado.setSelectedIndex(-<span class="literal">1</span>);<br /> }<br /> <span class="comment">//Clase para manejar el TableCellRenderer, que permitirá mostrar el JCheckBox<br /></span> <span class="keyword">class</span> Render_CheckBox <span class="keyword">extends</span> JCheckBox <span class="keyword">implements</span> TableCellRenderer {<br /> <span class="comment">//<br /></span> <span class="keyword">private</span> <span class="keyword">final</span> JComponent component = <span class="keyword">new</span> JCheckBox();<br /><br /> <span class="comment">/** Constructor de clase */</span><br /> <span class="keyword">public</span> Render_CheckBox() {<br /> setOpaque(<span class="keyword">true</span>);<br /> }<br /><br /> @Override<br /> <span class="keyword">public</span> Component getTableCellRendererComponent(JTable table, Object value, <span class="keyword">boolean</span> isSelected, <span class="keyword">boolean</span> hasFocus, <span class="keyword">int</span> row, <span class="keyword">int</span> column) {<br /> <span class="comment">//Color de fondo de la celda<br /></span> ( (JCheckBox) component).setBackground( <span class="keyword">new</span> Color(<span class="literal">98</span>,<span class="literal">138</span>,<span class="literal">183</span>) );<br /> <span class="comment">//obtiene valor boolean y coloca valor en el JCheckBox<br /></span> <span class="keyword">boolean</span> b = ((Boolean) value).booleanValue();<br /> ( (JCheckBox) component).setSelected( b );<br /> <span class="keyword">return</span> ( (JCheckBox) component);<br /> }<br /> }<br />
</pre>
</body>
</html>
<p style="text-align:justify">Para el ejemplo utilizamos dos tipos de evento, “ActionPerformed” para los botones y “MouseClicked” para la tabla. Abajo la lista de eventos. Obs.: En las primeras guías de esta serie vimos cómo se agregan eventos a objetos en modo diseño.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> agregarActionPerformed(java.awt.event.ActionEvent evt) { <br /> agregar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> eliminarActionPerformed(java.awt.event.ActionEvent evt) { <br /> eliminar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> jTbMouseClicked(java.awt.event.MouseEvent evt) { <br /> seleccion();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a este punto podremos ejecutar y probar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida) (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAkD6sMkjN3z2zExg3Qkli7ezF_VG-Zdjvs0JkeZjxNYp9hcfkGGzytpnuhtdtjXuMLd2HHvPLxvmnhO7gxaPriKRaYdHTyearpRVqAP8HZuU0-nbK6Wx9xQ-KpGVGoV5J3oUxM9B2mRG2/s1600/JTable002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAkD6sMkjN3z2zExg3Qkli7ezF_VG-Zdjvs0JkeZjxNYp9hcfkGGzytpnuhtdtjXuMLd2HHvPLxvmnhO7gxaPriKRaYdHTyearpRVqAP8HZuU0-nbK6Wx9xQ-KpGVGoV5J3oUxM9B2mRG2/s1600/JTable002.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ0JxY5v4-bPnWJM-18c8_tlx__5ogFvYK6LW1fiezTscLboFaAIQ-fSXrT6Lx5R4Zk49r1EpWYpA1PHa9oo1518sYI7joG2wzRvsOUVpUfy9Jcr2MhJ0xMme0U8BV7XIus8G4A2_p5MQp/s1600/JTable003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ0JxY5v4-bPnWJM-18c8_tlx__5ogFvYK6LW1fiezTscLboFaAIQ-fSXrT6Lx5R4Zk49r1EpWYpA1PHa9oo1518sYI7joG2wzRvsOUVpUfy9Jcr2MhJ0xMme0U8BV7XIus8G4A2_p5MQp/s1600/JTable003.png" /></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com10tag:blogger.com,1999:blog-4493955538939889481.post-12965012263365317022014-10-23T09:40:00.000-03:002019-11-20T08:57:26.292-03:00Uso básico de elementos Swing con NetBeans – 31 – Uso de JTabbedPane, divisor de paneles.<h1>Uso del elemento JTabbedPane en Java</h1>
<p style="text-align:justify">JTabbedPane es un elemento útil a la hora de dividir múltiples paneles en pestañas, lo cual permite incluir multitud de funcionalidades en un solo formulario, permitiendo compactarlas en paneles independientes y de fácil navegación. Para este ejemplo utilizaremos un JTabbedPane a la cual le incluiremos tres JPanel, cada una indicará una pestaña funcional por si sola. A cada JPanel le agregaremos un JScrollPane para ajustar el redimensionado y dentro de esta última un JLabel la cual utilizando ejemplos anteriores le agregaremos una imagen. Como se ver en el diseño más abajo, los ajustes básicos la hacemos en modo código, por tanto basta con agregar de forma correcta cada elemento.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuuchmTrOfVmAC9d37TYchXmrxmqYd5AqDwj1a5vd9eyAv-qH52s1D2PQGYsDzLClUCDBa7srmBpHui5qvPktaXnd7rQcjgVzeUCSQaopSH7_j6BEzcrXkQ9mfERIlmHA0zZbYf05rAQvt/s1600/UsoJTabbedPane01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuuchmTrOfVmAC9d37TYchXmrxmqYd5AqDwj1a5vd9eyAv-qH52s1D2PQGYsDzLClUCDBa7srmBpHui5qvPktaXnd7rQcjgVzeUCSQaopSH7_j6BEzcrXkQ9mfERIlmHA0zZbYf05rAQvt/s320/UsoJTabbedPane01.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete<br /></span><br /><span class="keyword">import</span> javax.swing.ImageIcon;<span class="comment">//Importación<br /></span><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJTabbedPane <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJTabbedPane<br /> */</span><br /> <span class="keyword">public</span> UsoJTabbedPane() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar Formulario<br /></span> inicio();<span class="comment">//Método de inicio<br /></span> }<br />
</pre>
</body>
</html>
<p style="text-align:justify">Como es habitual utilizamos un método privado que arrancará junto con el formulario al llamarla desde el constructor, esto nos permitirá inicializar las propiedades necesarias de cada objeto del formulario. Se especifican con comentarios la funcionalidad de cada línea de código. Para este ejemplo no se aplican los eventos.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Configuramos el primer tabbed, el primer parámetro indica el índice.<br /></span> jTabb.setTitleAt(<span class="literal">0</span>, <span class="string">"Primer Panel"</span>);<br /> jTabb.setIconAt(<span class="literal">0</span>, createImageIcon(<span class="string">"/com/swing/basic/img/Search.png"</span>));<br /> jTabb.setToolTipTextAt(<span class="literal">0</span>, <span class="string">"Esta es la primera pestaña"</span>);<br /> <span class="comment">//Agregamos el icono al label<br /></span> jLab01.setText(<span class="keyword">null</span>);<br /> <span class="comment">//Depende de como tengamos oragnizado los paquetes para ubicar las imagenes<br /></span> jLab01.setIcon(createImageIcon(<span class="string">"/com/swing/basic/img/aqua.png"</span>));<br /> <br /> <span class="comment">//Configuramos el segundo tabbed, el primer parámetro indica el índice.<br /></span> jTabb.setTitleAt(<span class="literal">1</span>, <span class="string">"Segundo Panel"</span>);<br /> jTabb.setIconAt(<span class="literal">1</span>, createImageIcon(<span class="string">"/com/swing/basic/img/clients.png"</span>));<br /> jTabb.setToolTipTextAt(<span class="literal">1</span>, <span class="string">"Esta es la segunda pestaña"</span>);<br /> jLab02.setText(<span class="keyword">null</span>);<br /> jLab02.setIcon(createImageIcon(<span class="string">"/com/swing/basic/img/kirito.png"</span>));<br /> <br /> <span class="comment">//Configuramos el tercer tabbed, el primer parámetro indica el índice.<br /></span> jTabb.setTitleAt(<span class="literal">2</span>, <span class="string">"Tercer Panel"</span>);<br /> jTabb.setIconAt(<span class="literal">2</span>, createImageIcon(<span class="string">"/com/swing/basic/img/load.png"</span>));<br /> jTabb.setToolTipTextAt(<span class="literal">2</span>, <span class="string">"Esta es la tercera pestaña"</span>);<br /> jLab03.setText(<span class="keyword">null</span>);<br /> jLab03.setIcon(createImageIcon(<span class="string">"/com/swing/basic/img/paisaje.png"</span>)); <br /> }<br /> <span class="comment">//Método que nos permitirá cargar una imagen como icono pasándole una url<br /></span> <span class="keyword">private</span> <span class="keyword">static</span> ImageIcon createImageIcon(String path) {<br /> java.net.URL imgURL = UsoJRadioButton.<span class="keyword">class</span>.getResource(path);<br /> <span class="keyword">if</span> (imgURL != <span class="keyword">null</span>) {<br /> <span class="keyword">return</span> <span class="keyword">new</span> ImageIcon(imgURL);<br /> } <span class="keyword">else</span> {<br /> System.err.println(<span class="string">"Archivo no encontrado: "</span> + path);<br /> <span class="keyword">return</span> <span class="keyword">null</span>;<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Ahora sí, podemos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiANLWRVvF4Fs2KbG1AWUBOqkgJiPAges9f4yj91PklU20uh0T_5hEQ9NrwFmE-PxpnJcm8UYY-EpO5mO-gtN4WRGtGP6CthifGIYPa07d5OKF1wkZ5N5jklmm-oFrDU_htX_AMlE7ommLx/s1600/UsoJTabbedPane02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiANLWRVvF4Fs2KbG1AWUBOqkgJiPAges9f4yj91PklU20uh0T_5hEQ9NrwFmE-PxpnJcm8UYY-EpO5mO-gtN4WRGtGP6CthifGIYPa07d5OKF1wkZ5N5jklmm-oFrDU_htX_AMlE7ommLx/s1600/UsoJTabbedPane02.png"></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhab-FK_2kCrOatRg7-7rG-U91WUq3eZ8Yr-dTRz_DhyphenhyphenOqTn_5kfgHcP-XrCGxYoXeoReAG-knBsblnavx55W2shi4PzICMcHvraekKYlq9lBQRtTWbRK_UbSsnEgf3Go-U3rqm_3LDAoLs/s1600/UsoJTabbedPane03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhab-FK_2kCrOatRg7-7rG-U91WUq3eZ8Yr-dTRz_DhyphenhyphenOqTn_5kfgHcP-XrCGxYoXeoReAG-knBsblnavx55W2shi4PzICMcHvraekKYlq9lBQRtTWbRK_UbSsnEgf3Go-U3rqm_3LDAoLs/s1600/UsoJTabbedPane03.png"></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-14355288083414917962014-10-16T09:37:00.000-03:002019-11-20T08:58:22.378-03:00Uso básico de elementos Swing con NetBeans – 30 – Uso de JSplitPane, divisor de elementos.<h1>Trabajando con JSplitPane desde Java</h1>
<p style="text-align:justify">El JSplitPane es un elemento muy útil que nos permite dividir objetos distintos en uno o varios paneles redimensionables. En este ejemplo agregamos una Lista de nombres de imágenes PNG, que se cargarán al seleccionarlas con un clic y que se mostraran en un Label, como se ve en el diseño el JSplitPane muestra la lista en la parte izquierda y al label en la parte derecha en el medio el divisor redimensionable. Como vemos en el diseño también necesitamos dos JScrollPane, que se puede agregar arrastrando y soltando en el punto específico, la misma forma el elemento que la utilizan se arrastra y suelta en su interior. Es más fácil mover elementos de un lugar a otro utilizando el “Navegador” como se muestra en la imagen más abajo.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBW3-1GMmsI-2gfmRXyUQRK_HjfFe9TyUAUR_xLFU0bOdGV-vEPzzHAYIUkvhePfBToOPKE60AaafuWoGJAYcHP19fCzasd2SeXcRLnuCoquUjfIwmeF4Ah0CpH0CCrHZOyQ3hPFjap6tw/s1600/UsoJSplitPane01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBW3-1GMmsI-2gfmRXyUQRK_HjfFe9TyUAUR_xLFU0bOdGV-vEPzzHAYIUkvhePfBToOPKE60AaafuWoGJAYcHP19fCzasd2SeXcRLnuCoquUjfIwmeF4Ah0CpH0CCrHZOyQ3hPFjap6tw/s320/UsoJSplitPane01.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">import</span> javax.swing.DefaultListModel;<br /><span class="keyword">import</span> javax.swing.ImageIcon;<span class="comment">//Importaciones<br /></span><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJSplitPane <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJSplitPane<br /> */</span><br /> <span class="keyword">public</span> UsoJSplitPane() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de arranque<br /></span> }<br /> <span class="keyword">private</span> DefaultListModel modelList;<span class="comment">//Variable de clase.</span>
</pre>
</body>
</html>
<p style="text-align:justify">Para el ejemplo utilizamos varios métodos que cumplen funciones específicas, la principal es “inicio” que nos permitirá inicializar la lista y configurar ciertas propiedades de cada elemento del diseño. Las propiedades de objetos se pueden editar en modo diseño, pero es más fácil entender cómo funcionan al hacerla en modo código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Incluye las fechitas de expanción rápida al JSplitPane<br /></span> jSp.setOneTouchExpandable(<span class="keyword">true</span>);<br /> <span class="comment">//Localización de divisor<br /></span> jSp.setDividerLocation(<span class="literal">150</span>);<br /> <span class="comment">//Array de String con los nombres de archivos PNG que utilizaremos<br /></span> <span class="comment">//Cada uno puede hacer su propia lista.<br /></span> String[] img = {<span class="string">"paisaje"</span>,<span class="string">"bosque"</span>,<span class="string">"kirito"</span>,<span class="string">"Delete"</span>,<span class="string">"Login"</span>,<span class="string">"New"</span>,<span class="string">"Save"</span>,<span class="string">"Select"</span>,<span class="string">"load"</span>,<span class="string">"note"</span>,<span class="string">"package"</span>,<br /> <span class="string">"print"</span>,<span class="string">"userr"</span>,<span class="string">"aqua"</span>};<br /> <span class="comment">//DefaultListModel para el JList<br /></span> modelList = <span class="keyword">new</span> DefaultListModel();<br /> <span class="comment">//Agregamos el array de String a la lista<br /></span> <span class="keyword">for</span> (String string : img) {<br /> modelList.addElement(string);<br /> }<br /> <span class="comment">//Específicamos el DefaultListModel para nuestro JList<br /></span> jLt.setModel(modelList);<br /> <span class="comment">//Indicamos que el JLabel no muestre texto<br /></span> jLb.setText(<span class="keyword">null</span>);<br /> <br /> <span class="comment">/**<br /> Imagen tipo JPG para indicar una imagen incial al JLabel<br /> El resto de las imagenes utilizada son PNG<br /> Las imagenes debemos de tenerlas en un paquete dentro del mismo proyecto...<br /> O dentro del mismo paquete que nuestro JFrame, en tal caso solo indicamos el nombre y la extensión,<br /> Caso contrario debemos de indicar toda la ruta...<br /> * */</span> <br /> jLb.setIcon(createImageIcon(<span class="string">"/com/swing/basic/img/"</span> + <span class="string">"acercaFond"</span> + <span class="string">".jpg"</span>));<br /> }<br /> <span class="comment">//Método para actualizar la imagenes mostradas en el JLabel<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> actualizar(){<br /> imageLabel(jLt.getSelectedValue().toString());<br /> }<br /> <span class="comment">//Método que requiere como parámetro el nombre del la imagen para mostrar<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> imageLabel(String nombre){<br /> jLb.setIcon(createImageIcon(<span class="string">"/com/swing/basic/img/"</span> + nombre + <span class="string">".png"</span>));<br /> }<br /> <br /> <span class="comment">//Método que nos permitira cargar una imagen como icono pasándole una url<br /></span> <span class="keyword">private</span> <span class="keyword">static</span> ImageIcon createImageIcon(String path) {<br /> java.net.URL imgURL = UsoJRadioButton.<span class="keyword">class</span>.getResource(path);<br /> <span class="keyword">if</span> (imgURL != <span class="keyword">null</span>) {<br /> <span class="keyword">return</span> <span class="keyword">new</span> ImageIcon(imgURL);<br /> } <span class="keyword">else</span> {<br /> System.err.println(<span class="string">"Archivo no encontrado: "</span> + path);<br /> <span class="keyword">return</span> <span class="keyword">null</span>;<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">En este ejemplo el único elemento que maneja eventos es la lista, la cual utiliza el MouseClicked. En las primeras guías de la serie vimos cómo se implementan los eventos desde el entorno de diseño, si hay dudas se pueden consultar esas entradas.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> jLtMouseClicked(java.awt.event.MouseEvent evt) { <br /> actualizar();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Ahora sí, podemos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida) (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNymAnjSmSjArZ1zjpvQqohSoAUwIZpycSveDyvA25KgBbW2rqTmDcX8K5Mw2dAdFXg_nYiIsg8WJ-mY9zoiE88fv7DEiyxMutk1B20fzfXJfxPMHtPfkUarH4FN_dmh522Mueyyi8B8ue/s1600/UsoJSplitPane02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNymAnjSmSjArZ1zjpvQqohSoAUwIZpycSveDyvA25KgBbW2rqTmDcX8K5Mw2dAdFXg_nYiIsg8WJ-mY9zoiE88fv7DEiyxMutk1B20fzfXJfxPMHtPfkUarH4FN_dmh522Mueyyi8B8ue/s1600/UsoJSplitPane02.png"></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHVtU3ttAW2U_nBiukT5717DubORDKG6ujqyjEAKdeLY4zprcoy4FpBIZ-20PvCAFGaY-CP5ha553088tgBoJb7C2PqA28Vxk9lW-lThuHWdmFI5PwbphEPsZsWrPTWKWLKPBnL8YPLMOL/s1600/UsoJSplitPane03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHVtU3ttAW2U_nBiukT5717DubORDKG6ujqyjEAKdeLY4zprcoy4FpBIZ-20PvCAFGaY-CP5ha553088tgBoJb7C2PqA28Vxk9lW-lThuHWdmFI5PwbphEPsZsWrPTWKWLKPBnL8YPLMOL/s1600/UsoJSplitPane03.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com2tag:blogger.com,1999:blog-4493955538939889481.post-38078256425956056312014-10-08T10:48:00.000-03:002019-11-21T09:07:14.595-03:00Uso básico de elementos Swing con NetBeans – 29 – Uso de Spinners, ejemplo 2.<h1>Uso básico de Spinners en Java</h1>
<p style="text-align:justify">Para este ejemplo utilizamos dos JSpinner, una para indicar fecha y otra para hora. Aparte de las etiquetas no se utiliza otro elemento, el diseño es bastante sencillo. El proceso es similar al ejemplo uno, se especifica el funcionamiento de cada línea de código con comentarios.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMug6MNCl0ufIp6ptmOTU7qpTQ4n57ZHVvZYC1rQYMyhjrvGhsikTRd6O7H99DOQx6WYS4xhGiCD3fQsoc_W4sGqDtJH3wWDN2n5q1peCL3vbVBorfwuu7fTMn22fZAAzUHpj4TC9cc8lm/s1600/UsoJSpinner001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMug6MNCl0ufIp6ptmOTU7qpTQ4n57ZHVvZYC1rQYMyhjrvGhsikTRd6O7H99DOQx6WYS4xhGiCD3fQsoc_W4sGqDtJH3wWDN2n5q1peCL3vbVBorfwuu7fTMn22fZAAzUHpj4TC9cc8lm/s320/UsoJSpinner001.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">import</span> java.util.Calendar;<br /><span class="keyword">import</span> java.util.Date;<br /><span class="keyword">import</span> javax.swing.JSpinner;<span class="comment">//Importaciones<br /></span><span class="keyword">import</span> javax.swing.SpinnerDateModel;<br /><span class="keyword">import</span> javax.swing.SpinnerModel;<br /><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoSpinnerDos <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJSliderDos<br /> */</span><br /> <span class="keyword">public</span> UsoSpinnerDos() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de arranque<br /></span> }<br /> Calendar calendar = Calendar.getInstance();<span class="comment">//Variable de Objeto Calendar</span>
</pre>
</body>
</html>
<p style="text-align:justify">Para este ejemplo requerimos de un solo método privado, que se iniciará desde el constructor del JFrame y permitirá inicializar los spinners. Se especifica el funcionamiento de cada línea de código utilizando comentarios. No se requieren eventos para este ejemplo.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Obtenemos una fecha de inicio, será la fecha actual del sistema<br /></span> Date inicio = calendar.getTime();<br /> <span class="comment">//Indicamos año hasta -100 del actual<br /></span> calendar.add(Calendar.YEAR, -<span class="literal">100</span>);<br /> <span class="comment">//Guardamos la configuración en un DATE<br /></span> Date fechaAnterior = calendar.getTime();<br /> <span class="comment">//Indicamos año hasta +200 del actual<br /></span> calendar.add(Calendar.YEAR, <span class="literal">200</span>);<br /> <span class="comment">//Guardamos la configuración en un DATE<br /></span> Date fechaPosterior = calendar.getTime();<br /> <span class="comment">//Usamos el contructor de abajo para crear un modelo para el Spinner<br /></span> <span class="comment">//SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)<br /></span> <span class="comment">//Utilizamos los datos que creamos más arriba<br /></span> <span class="comment">//Para fecha utilizamos Calendar.YEAR y para hora Calendar.HOUR, el resto puede ser igual<br /></span> SpinnerModel fechaModel = <span class="keyword">new</span> SpinnerDateModel(inicio, fechaAnterior, fechaPosterior, Calendar.YEAR);<br /> SpinnerModel horaModel = <span class="keyword">new</span> SpinnerDateModel(inicio, fechaAnterior, fechaPosterior, Calendar.HOUR);<br /> <span class="comment">//Indicamos el model para cada Spinner además del formato de fecha y hora según corresponda.<br /></span> fecha.setModel(fechaModel);<br /> fecha.setEditor(<span class="keyword">new</span> JSpinner.DateEditor(fecha, <span class="string">"dd/MM/yyyy"</span>));<br /> hora.setModel(horaModel);<br /> hora.setEditor(<span class="keyword">new</span> JSpinner.DateEditor(hora, <span class="string">"HH:mm:ss"</span>));<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Ahora sí, podemos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida) (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1QoeMpB0Tv2twT84-sgbFVL07HAjf5Q-1bzbSIOjK6mTjQoN9__mGU5XLv6qwXNHm4J8s2iH6wsb1wuyt67MAk9sPVoe_I8ZKzxG3LC1XJcUYpADQG6F-Cxc2i7cIoMwBuiDv0SqdovPD/s1600/UsoJSpinner002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1QoeMpB0Tv2twT84-sgbFVL07HAjf5Q-1bzbSIOjK6mTjQoN9__mGU5XLv6qwXNHm4J8s2iH6wsb1wuyt67MAk9sPVoe_I8ZKzxG3LC1XJcUYpADQG6F-Cxc2i7cIoMwBuiDv0SqdovPD/s1600/UsoJSpinner002.png"></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com3tag:blogger.com,1999:blog-4493955538939889481.post-36670599042393755472014-10-02T10:27:00.000-04:002019-11-21T09:14:33.331-03:00Uso básico de elementos Swing con NetBeans – 28 – Uso de Spinners, lista de elementos.<h1>Trabajando con Spinners desde Java.</h1>
<p style="text-align:justify">En esta oportunidad pondremos en funcionamiento tres Spinnes, que contendrán una lista de días meses y años respectivamente. Como sabemos un spinner puede contener diferentes tipos de elementos sean estas numéricas o no. Para el ejemplo agregaremos tres Spinnes que contendrán cada uno un modelo específico de elementos que se contendrán en Arrays y enteros. Dependiendo del caso se pueden utilizar SpinnerListModel o SpinnerNumberModel.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkG-f5VBJedS93Qc771LjbMHuWaVn5dRFUof_lnG7UnUBPyG24WKGNTdyd8YeGXvgMIme9vVb360XKJO71-P7RrFDEKHtqpr-g3SI1lNjhnDtskOxbUjQ-o3Xc8f_23l7pdbhzqRtGoZC2/s1600/UsoJSpinner01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkG-f5VBJedS93Qc771LjbMHuWaVn5dRFUof_lnG7UnUBPyG24WKGNTdyd8YeGXvgMIme9vVb360XKJO71-P7RrFDEKHtqpr-g3SI1lNjhnDtskOxbUjQ-o3Xc8f_23l7pdbhzqRtGoZC2/s320/UsoJSpinner01.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">import</span> java.util.Calendar;<br /><span class="keyword">import</span> javax.swing.SpinnerListModel;<br /><span class="keyword">import</span> javax.swing.SpinnerModel;<span class="comment">//Importaciones<br /></span><span class="keyword">import</span> javax.swing.SpinnerNumberModel;<br /><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoSpinner <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoSpinner<br /> */</span><br /> <span class="keyword">public</span> UsoSpinner() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar Formulario<br /></span> inicio();<br /> }<br /> Calendar calendar = Calendar.getInstance();<span class="comment">//Variable de Objeto Calendar</span>
</pre>
</body>
</html>
<p style="text-align:justify">Para este ejemplo requerimos de un solo método privado, que se iniciará desde el constructor del JFrame y permitirá inicializar los spinners. Se especifica el funcionamiento de cada línea de código utilizando comentarios. No se requieren eventos para este ejemplo.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Array de String para los días y meses<br /></span> String[] d = {<span class="string">"Domingo"</span>,<span class="string">"Lunes"</span>,<span class="string">"Martes"</span>,<span class="string">"Miércoles"</span>,<span class="string">"Jueves"</span>,<span class="string">"Viernes"</span>,<span class="string">"Sábado"</span>};<br /> <span class="comment">//El array mes puede contener un registro vacío, se puede corregir con un pequeño ajuste...<br /></span> String[] mes = <span class="keyword">new</span> java.text.DateFormatSymbols().getMonths();<br /> <span class="comment">//Tipo entero para año<br /></span> <span class="keyword">int</span> an = calendar.get(Calendar.YEAR);<br /> <br /> <span class="comment">//Especificando modelos para cada Spinner<br /></span> SpinnerListModel modelDias = <span class="keyword">new</span> SpinnerListModel(d);<br /> SpinnerListModel modelMes = <span class="keyword">new</span> SpinnerListModel(mes);<br /> <span class="comment">//Parámetro numéricos<br /></span> <span class="comment">//public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)<br /></span> <span class="comment">//Valor inicial - valor mínimo - valor máximo - incremento a 1<br /></span> SpinnerModel modelAnyo = <span class="keyword">new</span> SpinnerNumberModel(an, an - <span class="literal">100</span>, an + <span class="literal">100</span>, <span class="literal">1</span>);<br /> <span class="comment">//Agregamos el modelo a cada Spinner<br /></span> dias.setModel(modelDias);<br /> meses.setModel(modelMes);<br /> anyos.setModel(modelAnyo);<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida) (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVaCiIR1iIYu0Swo9CNibin2-FQFdBvrGYc-5qRo2orxo57tNRHUuyCvJ1n7yPxfl-xSH5PI-pFhmZhgg-OzeBvSKS-O_wPP7VpsgEalm3Gwg1ksIuS3cnsjo2yM1gQBuEBlEgi2DRvGvq/s1600/UsoJSpinner02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVaCiIR1iIYu0Swo9CNibin2-FQFdBvrGYc-5qRo2orxo57tNRHUuyCvJ1n7yPxfl-xSH5PI-pFhmZhgg-OzeBvSKS-O_wPP7VpsgEalm3Gwg1ksIuS3cnsjo2yM1gQBuEBlEgi2DRvGvq/s1600/UsoJSpinner02.png"></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com2tag:blogger.com,1999:blog-4493955538939889481.post-54959560133548482542014-09-23T13:42:00.000-04:002019-11-21T09:22:11.537-03:00Uso básico de elementos Swing con NetBeans – 27 – Uso de JSlider, regla interactiva.<h1>Manejo de JSlider desde Java.</h1>
<p style="text-align:justify">Para este ejemplo veremos el uso básico de un “JSlider”, que es similar a una regla interactiva con valores numéricos o etiquetas que indican propiedades. En esta aplicación utilizaremos un Área de Texto junto con el JSlider. Específicamente el JSlider contendrá valores numéricos que representaran tamaños de fuentes, el Área de Texto contendrá dos párrafos que irán variando el tamaño de texto conforme desplacemos los valores más o menos en el JSlider.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO0LKWAKgOTBM06cl98QHUv4u5qy-_Dc5fQzCNw5pGoWBDUFmxEUFbWDe5RezZN7GPjYJTYeabCTqTGNZctOsFyPWdSOudhnrtj5tja-Wd9mb3C7rG8uHKzbOB7jcSviqLfvKr4tTchfur/s1600/UsoJSlider01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO0LKWAKgOTBM06cl98QHUv4u5qy-_Dc5fQzCNw5pGoWBDUFmxEUFbWDe5RezZN7GPjYJTYeabCTqTGNZctOsFyPWdSOudhnrtj5tja-Wd9mb3C7rG8uHKzbOB7jcSviqLfvKr4tTchfur/s320/UsoJSlider01.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">import</span> java.awt.Font;<br /><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJSlider <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJSlider<br /> */</span><br /> <span class="keyword">public</span> UsoJSlider() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de inicio<br /></span> }
</pre>
</body>
</html>
<p style="text-align:justify">Para este ejemplo requerimos un único método que llamaremos al ejecutar el formulario y esto nos permitirá inicializar los objetos que agregamos en modo de diseño. Los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//-Establecemos propiedades para el JTextArea-<br /></span> <span class="comment">//Establecemos tipo de fuente Consolas, texto plano, tamaño 15<br /></span> jt.setFont(<span class="keyword">new</span> Font(<span class="string">"Consolas"</span>, Font.PLAIN, <span class="literal">16</span>));<br /> <span class="comment">//Especificamos que el texto se ajusta al tamaño del Área de texto<br /></span> jt.setLineWrap(<span class="keyword">true</span>);<br /> jt.setWrapStyleWord(<span class="keyword">true</span>);<br /> <span class="comment">//Agregamos texto simple al Área de Texto como ejemplo.<br /></span> <span class="comment">//El indicador \n sirve para salto de línea.<br /></span> jt.setText(<span class="string">"Java Development Kit o (JDK), es un "</span><br /> + <span class="string">"software que provee herramientas de desarrollo "</span><br /> + <span class="string">"para la creación de programas en Java. "</span><br /> + <span class="string">"\nNetBeans IDE. Es un entorno de desarrollo integrado libre, "</span><br /> + <span class="string">"hecho principalmente para el lenguaje de programación Java."</span>); <br /> <br /> <span class="comment">//Configurams el JSlider<br /></span> <span class="comment">//Valor mínimo<br /></span> jl.setMinimum(<span class="literal">8</span>);<br /> <span class="comment">//Valor máximo<br /></span> jl.setMaximum(<span class="literal">44</span>);<br /> <span class="comment">//valor inicial<br /></span> jl.setValue(<span class="literal">16</span>);<br /> <span class="comment">//Valores para mostrar regla<br /></span> <span class="comment">//mínimo para mostrar<br /></span> jl.setMinorTickSpacing(<span class="literal">1</span>);<br /> <span class="comment">//máximo para mostrar<br /></span> jl.setMajorTickSpacing(<span class="literal">4</span>);<br /> <span class="comment">//Especificamos que se muestren los valores<br /></span> jl.setPaintTicks(<span class="keyword">true</span>);<br /> jl.setPaintLabels(<span class="keyword">true</span>);<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Para el JSlider utilizamos el evento “StateChanged”, que nos permitirá capturar el valor cuando se deslice el marcador en la regla. En las primeras guías de la serie vimos cómo se implementan los eventos desde el entorno de diseño, si hay dudas se pueden consultar esas entradas.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> jlStateChanged(javax.swing.event.ChangeEvent evt) { <br /> <span class="comment">//Obtenemos valor del JSlider<br /></span> <span class="keyword">int</span> value = jl.getValue();<br /> <span class="comment">//Indicamos las propiedades de fuente del JTextArea<br /></span> <span class="comment">//value será la que cambien según se mueva el marcador del JSlider.<br /></span> jt.setFont(<span class="keyword">new</span> Font(<span class="string">"Consolas"</span>, Font.PLAIN, value));<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5kk0AVvboo44FCeWIaLVRrYbB3qqqCf4QkGs9DNkL9aA5Mo4QjwyeeT4RuEDTrRSRt6u_JsQ2SnKooQ1NkspW-lOwlF4eOiiLXfbyaz6vkLppvrS9De4pqH0RGXFLFr4zCANSLu_mdItA/s1600/UsoJSlider02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5kk0AVvboo44FCeWIaLVRrYbB3qqqCf4QkGs9DNkL9aA5Mo4QjwyeeT4RuEDTrRSRt6u_JsQ2SnKooQ1NkspW-lOwlF4eOiiLXfbyaz6vkLppvrS9De4pqH0RGXFLFr4zCANSLu_mdItA/s320/UsoJSlider02.png"></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8SH5UNE0A4iuHVbjlQ-n2uVVU964SZeBAoyeOnC0nSmyZc09POp-6_Inv5LpNeuFWeo4FF6WXSxJCP508MbUTbehZQkwO7PbC0qZb1h1-TLi5ocr2h3_baL0RDP-kQiwKP6o237sFVSjT/s1600/UsoJSlider03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8SH5UNE0A4iuHVbjlQ-n2uVVU964SZeBAoyeOnC0nSmyZc09POp-6_Inv5LpNeuFWeo4FF6WXSxJCP508MbUTbehZQkwO7PbC0qZb1h1-TLi5ocr2h3_baL0RDP-kQiwKP6o237sFVSjT/s320/UsoJSlider03.png"></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-6349491093855708242014-09-10T10:32:00.000-04:002019-11-21T09:23:17.059-03:00Uso básico de elementos Swing con NetBeans – 26 – Uso de JProgressBar, barra de progreso. Ejemplo 2.<h1>Ejemplo de uso de JProgressBar desde Java</h1>
<p style="text-align:justify">En esta guía veremos el funcionamiento de la barra de progresos “JProgressBar” de uso habitual en ciertos procesos que requieren tiempo de ejecución controlada. Para este segundo ejemplo realizaremos algo un poco más complejo, específicamente aplicaremos una método que calcula números primos. Este método la hemos creado como ejemplo para el curso en modo consola, realizaremos pequeñas modificaciones para ajustarla a este propósito. Para el diseño utilizamos un JFrame, la nombramos “UsoJProgressBar2”. Podemos utilizar “JPanel” para ordenar los elementos de forma independiente. En vista de diseño vemos en uno de los paneles dos campos de texto con sus etiquetas más los botones de comando que servirán para poner en marcha la aplicación. Seguido la barra de progresos. Por último dentro de un panel el “JList” que mostrará los números primos que obtengamos.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, en el diseño se especifican; es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DE2lUlJd5nJCQUz-hhCoPr5IERa43joM_QChcQbX83gAIdOO7FYBgQygn9KJrU5l4GQjmUmTTAS4ZEVSFaLvX60PRckjbZWRasAwzQs1jtQIhuh48R356nO1dDHmoalIaeodhhg_UIGM/s1600/UsoJProgressBar001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5DE2lUlJd5nJCQUz-hhCoPr5IERa43joM_QChcQbX83gAIdOO7FYBgQygn9KJrU5l4GQjmUmTTAS4ZEVSFaLvX60PRckjbZWRasAwzQs1jtQIhuh48R356nO1dDHmoalIaeodhhg_UIGM/s320/UsoJProgressBar001.png"></a></div>
<p style="text-align:justify">Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame y variables de clase que necesitamos crear.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//tomar en cuenta el paquete del JFrame<br /></span><br /><span class="keyword">import</span> javax.swing.DefaultListModel;<br /><span class="keyword">import</span> javax.swing.JList;<br /><span class="keyword">import</span> javax.swing.JOptionPane;<br /><span class="keyword">import</span> javax.swing.ListSelectionModel;<br /><br /><span class="comment">/**<br /> *<br /> * @author Ariel<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJProgressBar2 <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJProgressBar2<br /> */</span><br /> <span class="keyword">public</span> UsoJProgressBar2() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> inicio();<span class="comment">//Método de inicio<br /></span> }<br /> <span class="keyword">private</span> DefaultListModel modelList;<span class="comment">//Variable de clase.</span>
</pre>
</body>
</html>
<p style="text-align:justify">Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Especificamos algunas propiedades de nuestra lista<br /></span> <span class="comment">//Inicializamos la variable DefaultListModel<br /></span> modelList = <span class="keyword">new</span> DefaultListModel();<br /> <span class="comment">//Establecemos el modelo, nos permite agregar y eliminar elementos, etc.<br /></span> lista.setModel(modelList);<br /> <span class="comment">//Intervalo de selección<br /></span> lista.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);<br /> lista.setSelectedIndex(<span class="literal">0</span>);<br /> lista.setVisibleRowCount(-<span class="literal">1</span>);<br /> <span class="comment">//Distribución horizontal<br /></span> lista.setLayoutOrientation(JList.HORIZONTAL_WRAP); <br /> <span class="comment">//Limpiamos los campos de texto<br /></span> desde.setText(<span class="keyword">null</span>);<br /> hasta.setText(<span class="keyword">null</span>);<br /> <span class="comment">//Indicamos el valor que muestra JProgressBar al iniciar el programa<br /></span> jpb.setValue(<span class="literal">0</span>);<br /> }<br /> <br /> <span class="keyword">private</span> <span class="keyword">void</span> iniciar(){<br /> <span class="comment">//Creamos un Thread para mejorar el ejemplo<br /></span> <span class="keyword">final</span> Thread t;<br /> <span class="comment">//Inicializamos<br /></span> t = <span class="keyword">new</span> Thread(<span class="keyword">new</span> Runnable() {<br /> <span class="comment">//Implementamos el método run()<br /></span> @Override<br /> <span class="keyword">public</span> <span class="keyword">void</span> run() {<br /> <span class="comment">//Permite mostrar el valor del progreso<br /></span> jpb.setStringPainted(<span class="keyword">true</span>);<br /> <span class="comment">//Comprobamos que no esten vacíos los campos de texto<br /></span> <span class="keyword">if</span>(!desde.getText().isEmpty() && !hasta.getText().isEmpty()){<br /> <span class="comment">//Utilizamos try... por si falla la coversión numérica<br /></span> <span class="keyword">try</span> {<br /> <span class="keyword">int</span> d = Integer.parseInt(desde.getText());<br /> <span class="keyword">int</span> h = Integer.parseInt(hasta.getText());<br /> <span class="comment">//Verificamos que los datos numéricos sean mayor que cero-0<br /></span> <span class="keyword">if</span>(d > <span class="literal">0</span> && h > <span class="literal">0</span>){<br /> <span class="comment">//Verificamos que h sea mayor que d<br /></span> <span class="keyword">if</span>(h > d){<br /> <span class="comment">//Establecemos el valor mínimo y máximo de nuestro barra de progreso<br /></span> <span class="comment">//Esta permitirá mostra el valor correcto del progreso<br /></span> jpb.setMinimum(d);<br /> jpb.setMaximum(h);<br /> <span class="comment">//Con un for iremos comprobando si el valor de i es primo<br /></span> <span class="keyword">for</span> (<span class="keyword">int</span> i = d; i <= h; i++) {<br /> <span class="comment">//i será el valor de la barra de progreso en cada momento, esta se ira incrementando<br /></span> jpb.setValue(i);<br /> <span class="comment">//Comprobamos que el valor sea primo por cada ciclo<br /></span> <span class="keyword">if</span>(!esPrimo(i)){<br /> modelList.addElement(i);<br /> }<br /> <span class="comment">//Hacemos una interrupción de 100 milisegundos<br /></span> <span class="comment">//Se puede disminuir o aumentar según se desee<br /></span> <span class="keyword">try</span> {<br /> Thread.sleep(<span class="literal">100</span>);<br /> } <span class="keyword">catch</span> (InterruptedException e) {<br /> }<br /> }<br /> }<br /> }<br /> <br /> } <span class="keyword">catch</span> (NumberFormatException e) {<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Datos no numéricos"</span> + e);<br /> }<br /> } <br /> }<br /> });<br /> <span class="comment">//Se ejecuta el Thread<br /></span> t.start();<br /> }<br /> <span class="comment">//Este método vimos su funcionamiento en modo consola<br /></span> <span class="comment">//La función recibe un entero como argumento para calcular si es primo<br /></span> <span class="keyword">private</span> <span class="keyword">boolean</span> esPrimo(<span class="keyword">int</span> n){<br /> <span class="comment">//inicializamos una variable boolean<br /></span> <span class="keyword">boolean</span> b = <span class="keyword">false</span>;<br /> <span class="comment">//Los números negativos no entran como primos, el 1-uno tampoco<br /></span> <span class="keyword">if</span>(n <= <span class="literal">0</span> || n == <span class="literal">1</span>){<br /> b = <span class="keyword">true</span>;<br /> }<br /> <span class="comment">//El 2,3,5 son primos conocidos por tanto las obviamos<br /></span> <span class="keyword">else</span> <span class="keyword">if</span>(n != <span class="literal">2</span> && n != <span class="literal">3</span> && n != <span class="literal">5</span>){<br /> <span class="comment">//Con un for recorremos los números intermedios en 1 y n<br /></span> <span class="comment">//Comprobamos que el módulo con alguno de ellos de 0-cero<br /></span> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="literal">2</span>; i < n; i++) {<br /> <span class="comment">//Si b es true, demuestra que n no es primo y salimos del bucle<br /></span> <span class="keyword">if</span>(b){<br /> <span class="keyword">break</span>;<br /> }<br /> b = (n%i == <span class="literal">0</span>);<br /> } <br /> }<br /> <span class="comment">//2,3 y 5 son los primeros primos conocidos<br /></span> <span class="keyword">else</span>{<br /> b = <span class="keyword">false</span>;<br /> }<br /> <span class="keyword">return</span> b;<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Para los botones utilizamos el evento “ActionPerformed”. Si hay dudas sobre como agregar “Eventos” a objetos, en las primeras guías de la serie vimos con detalle ese punto.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> iniciarActionPerformed(java.awt.event.ActionEvent evt) { <br /> iniciar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> limpiarActionPerformed(java.awt.event.ActionEvent evt) { <br /> inicio();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmMNIV7Gid5qqyixaJZGeXO2jbOxAZ8G6dBcTvM9KL1Q85VSEmDIkCv0jsKc_MqhLZzzKSeeW5YvSwyakSTwWhoJ6Unhq_ThDW1ALEqWhfm38pYE7L68nxrA89eWNC09A351r4Up965twv/s1600/UsoJProgressBar002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmMNIV7Gid5qqyixaJZGeXO2jbOxAZ8G6dBcTvM9KL1Q85VSEmDIkCv0jsKc_MqhLZzzKSeeW5YvSwyakSTwWhoJ6Unhq_ThDW1ALEqWhfm38pYE7L68nxrA89eWNC09A351r4Up965twv/s1600/UsoJProgressBar002.png"></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQK7e28pFiXMd4Ti8ff2NdXuqHW3rrOlIxbDgX7khzKD_76xfl-ndemixyfvtinC2gzapXCHUkoDbl7rOEJdos3A5WyHZZ2wS0HNLZ8txiMzXUpq7YPJzoeZadz2wv3MD6MHIvaDzCVfQ0/s1600/UsoJProgressBar003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQK7e28pFiXMd4Ti8ff2NdXuqHW3rrOlIxbDgX7khzKD_76xfl-ndemixyfvtinC2gzapXCHUkoDbl7rOEJdos3A5WyHZZ2wS0HNLZ8txiMzXUpq7YPJzoeZadz2wv3MD6MHIvaDzCVfQ0/s1600/UsoJProgressBar003.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com5tag:blogger.com,1999:blog-4493955538939889481.post-46190942922875430442014-09-05T10:53:00.000-04:002019-11-29T15:44:21.353-03:00Uso básico de elementos Swing con NetBeans – 25 – Uso de JProgressBar, barra de progreso.<h1>Uso básico de JProgressBar desde Java</h1>
<p style="text-align:justify">En esta guía veremos el funcionamiento de la barra de progresos “JProgressBar” de uso habitual en ciertos procesos que requieren tiempo de ejecución controlada. Como vemos en el diseño más abajo, creamos un formulario utilizando un JFrame, la nombramos “UsoJProgressBar”. Agregamos al formulario un “Botón” para lanzar nuestro método, el objeto “JProgressBar” y un “JTextArea” para mostrar el progreso de la ejecución.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, en el diseño se especifican; es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWr8Z8kIZKWv9J8RfdgfHY1U0VPMFOaM29q3b_AUXsRmhuIF2pnyeV4q2lJjlmzVA-1gAVwEUCZ1K578TfhhR3SCMvnDCSlCbb485lG2XyuKGpHocGmPna6NCYtpNp9q5pQqxiKHkjdIYk/s1600/UsoJProgressBar01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWr8Z8kIZKWv9J8RfdgfHY1U0VPMFOaM29q3b_AUXsRmhuIF2pnyeV4q2lJjlmzVA-1gAVwEUCZ1K578TfhhR3SCMvnDCSlCbb485lG2XyuKGpHocGmPna6NCYtpNp9q5pQqxiKHkjdIYk/s320/UsoJProgressBar01.png"></a></div>
<p style="text-align:justify">Para este ejemplo no se requiere de ninguna importación. Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="comment">//Método que llamaremos desde nuestro botón<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Creamos un Thread para mejorar el ejemplo<br /></span> <span class="keyword">final</span> Thread t;<br /> <span class="comment">//Inicializamos<br /></span> t = <span class="keyword">new</span> Thread(<span class="keyword">new</span> Runnable() {<br /> <span class="comment">//Implementamos el método run()<br /></span> @Override<br /> <span class="keyword">public</span> <span class="keyword">void</span> run() {<br /> <span class="comment">//Permite mostrar el valor del progreso<br /></span> jPr.setStringPainted(<span class="keyword">true</span>);<br /> <span class="keyword">int</span> x = <span class="literal">1</span>;<br /> <span class="comment">//Utilizamos un while para emular el valor mínimo y máximo<br /></span> <span class="comment">//En este caso 0 - 100<br /></span> <span class="keyword">while</span>(x <= <span class="literal">100</span>){<br /> <span class="comment">//Asignamos valor a nuestro JProgressBar por cada siclo del bucle<br /></span> jPr.setValue(x);<br /> <span class="comment">//Valor que se mostrará en el JTextArea<br /></span> salida.append(<span class="string">"Progreso "</span> + x + <span class="string">"%...\n"</span>);<br /> <span class="comment">//Hacemos una parada de medio segundo por cada siclo while<br /></span> <span class="keyword">try</span> {<br /> Thread.sleep(<span class="literal">500</span>);<br /> } <span class="keyword">catch</span> (InterruptedException e) {<br /> }<br /> <span class="comment">//Se incrementa el valor de x<br /></span> x++;<br /> }<br /> }<br /> });<br /> <span class="comment">//Se ejecuta el Thread<br /></span> t.start();<br /> }
</pre>
</body>
</html>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-7915126032336125"
data-ad-slot="5152455804"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p style="text-align:justify">Para el botón “Iniciar” utilizamos el evento “ActionPerformed”. Si hay dudas sobre como agregar “Eventos” a objetos, en las primeras guías de la serie vimos con detalle ese punto.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> iniciarActionPerformed(java.awt.event.ActionEvent evt) { <br /> inicio();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida).</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCcDjkDzRxKTch13HypRvhS0KBJI7gt_OzWNWKct1Z5HJXpUaDMkIQxX57mOYo_SVILdEEgUgon_qRu6TthSXHipcIoAxDRq_E1VQDPAu9V92Su2yAKKafKM2WFgGzerPyywDJ5h3fwG8U/s1600/UsoJProgressBar02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCcDjkDzRxKTch13HypRvhS0KBJI7gt_OzWNWKct1Z5HJXpUaDMkIQxX57mOYo_SVILdEEgUgon_qRu6TthSXHipcIoAxDRq_E1VQDPAu9V92Su2yAKKafKM2WFgGzerPyywDJ5h3fwG8U/s1600/UsoJProgressBar02.png"></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHevZzsFGO0vdSL4MQvw-Q8B_fL7LSY0s6EP822Q2b13Ons4Q5E1789HSlqERBHaAtUSUzFA3WwBemIqTc3Z6Ex9JT9unlMAnC1J-2tTUwlrpxtGcgWJq-Mdt4lA29igltGN9bI74rzf7Z/s1600/UsoJProgressBar03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHevZzsFGO0vdSL4MQvw-Q8B_fL7LSY0s6EP822Q2b13Ons4Q5E1789HSlqERBHaAtUSUzFA3WwBemIqTc3Z6Ex9JT9unlMAnC1J-2tTUwlrpxtGcgWJq-Mdt4lA29igltGN9bI74rzf7Z/s1600/UsoJProgressBar03.png"></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com11tag:blogger.com,1999:blog-4493955538939889481.post-90460368533576824022014-08-28T10:24:00.000-04:002019-11-27T10:17:42.362-03:00Uso básico de elementos Swing con NetBeans – 24 – Uso de JPasswordField, campo para contraseña.<h1>Manejo de JPasswordField en Java.</h1>
<p style="text-align:justify">En esta guía mostraremos una forma sencilla de usar el campo de contraseña, que es una extensión de la clase campo de textos. Para este ejemplo utilizaremos un JPasswordField para ingresar la contraseña de comprobación y un JTextField con la salida del resultado; un botón con evento para ejecutar el método de comprobación. Para el diseño utilizamos un “JFrame” que nombraremos “UsoJPasswordField”.</p>
<p style="text-align:justify">Tomar en cuenta los nombres de variable de cada objeto, en el diseño se especifican; es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFC0MFUOucnNIE-deq9Xo6c2wOPqTX1zvFfLM4VB1fVDlRDvPfJmPT0NaK99jc-mo8sJQKtdZRR7-Epn3hsdL6amUMbj3V-cclrEG-fTX8iUraj5_9eWVhK-_E1Sblx58PjX9gbdNTsQ_g/s1600/UsoJPasswordField02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFC0MFUOucnNIE-deq9Xo6c2wOPqTX1zvFfLM4VB1fVDlRDvPfJmPT0NaK99jc-mo8sJQKtdZRR7-Epn3hsdL6amUMbj3V-cclrEG-fTX8iUraj5_9eWVhK-_E1Sblx58PjX9gbdNTsQ_g/s320/UsoJPasswordField02.png"></a></div>
<p style="text-align:justify">La única importación necesaria será la siguiente: <code> import java.util.Arrays; </code></p>
<p style="text-align:justify">Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-7915126032336125"
data-ad-slot="5152455804"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> aceptar(){<br /> <span class="comment">//Obtenemos el password que es un array de caracteres<br /></span> <span class="comment">//El resultado no es texto en claro sino codificado.<br /></span> <span class="keyword">char</span>[] password = jPass.getPassword();<br /> <span class="comment">//Usamos nuestro método creado para comprobar<br /></span> <span class="keyword">if</span>(esCorrecta(password)){<br /> jTextP.setText(<span class="string">"Es Correcta: "</span> + password);<br /> }<br /> <span class="keyword">else</span>{<br /> jTextP.setText(<span class="string">"Contraseña errónea, intenta de nuevo: "</span> + password);<br /> }<br /> <span class="comment">//Limpiamos los datos del array.<br /></span> Arrays.fill(password, '<span class="literal">0</span>');<br /> jPass.selectAll();<br /> jPass.requestFocus();<br /> <br /> }<br /> <span class="comment">//Creamos un método para comprobar la contraseña correcta<br /></span> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> esCorrecta(<span class="keyword">char</span>[] p) {<br /> <span class="keyword">boolean</span> esPass = <span class="keyword">true</span>;<br /> <span class="comment">//Nuestra contraseña de prueba "usuario"<br /></span> <span class="keyword">char</span>[] pass = { 'u', 's', 'u', 'a', 'r', 'i', 'o' };<br /> <span class="comment">//Comprobamos que la longitud sea igual<br /></span> <span class="keyword">if</span> (p.length != pass.length) {<br /> esPass = <span class="keyword">false</span>;<br /> } <span class="keyword">else</span> {<br /> <span class="comment">//Usamos un comparador para verificar carácter por carácter.<br /></span> esPass = Arrays.equals(p, pass);<br /> }<br /> <span class="comment">//Limpiamos los datos del array. <br /></span> <span class="comment">//Requerimiento de seguridad.<br /></span> Arrays.fill(pass,'<span class="literal">0</span>');<br /> <span class="keyword">return</span> esPass;<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Para el botón “Aceptar” utilizamos el evento “ActionPerformed”. Si hay dudas sobre como agregar “Eventos” a objetos, en las primeras guías de la serie vimos con detalle ese punto.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> jButton1ActionPerformed(java.awt.event.ActionEvent evt) { <br /> aceptar();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgreH3z-Bs8X0tM9nopdWhUJa4-1oYvZQwdiMBcx-rHVGZphdJGMC77gpKLZHQrW5ZeP9fmBMkwLcc80tdplWMQk5whQUcizTdnlw4NBBY92wJF6wQlWEc1x7h2uxdghSp1BgDyn12tQccH/s1600/UsoJPasswordField03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgreH3z-Bs8X0tM9nopdWhUJa4-1oYvZQwdiMBcx-rHVGZphdJGMC77gpKLZHQrW5ZeP9fmBMkwLcc80tdplWMQk5whQUcizTdnlw4NBBY92wJF6wQlWEc1x7h2uxdghSp1BgDyn12tQccH/s1600/UsoJPasswordField03.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-61766327491726098682014-08-14T10:58:00.000-04:002019-11-21T09:35:55.703-03:00Uso básico de elementos Swing con NetBeans – 23 – Uso de JPopupMenu, menú emergente.<h1>Manejo de JPopupMenu en Java</h1>
<p style="text-align:justify">En este ejemplo veremos cómo podemos utilizar el JPopupMenu dentro de una tabla, a la vez veremos el uso básico que se le puede dar a esta tabla, pudiendo manejarla utilizando DefaultTableModel, se personalizan las columnas del “JTable” haciendo clic derecho sobre la misma, si el menú es en español dirá “Contenido de tabla”, luego seleccionamos pestaña “columnas” y hacemos las modificaciones, en la imagen del diseño se especifican los detalles. Los campos de texto servirán para obtener datos del usuario y el botón “Agregar” para obtener esos datos y pasarla a la tabla. El JPopupMenu se agrega al formulario tomándola desde la paleta, pero esta se ubica en el área que dice “Otros componentes” como vemos en el diseño más abajo, seguido le podremos añadir los “JMenuItem” que necesitemos; para este ejemplo utilizamos dos que serán “Eliminar” y “Sumar”. Para el diseño del formulario utilizamos JFrame, el nombre del mismo es a criterio de cada uno en esta ocasión. Tomar en cuenta los nombres de variable de cada objeto, en el diseño se especifican; es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUlGklHFdY3qMbI3hKgwnd_eoM68S-m4u3IFmvi_PzykqJ18SwZn71YHOH6Shw6RoOxT6GopjQXHF5s9KtNpVHWopjL3kGr3809y2E3ZDYxx_XMniGWFo7zIH3Qvel2N4Cl96_NwqdAxQ7/s1600/JPopupMenu01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUlGklHFdY3qMbI3hKgwnd_eoM68S-m4u3IFmvi_PzykqJ18SwZn71YHOH6Shw6RoOxT6GopjQXHF5s9KtNpVHWopjL3kGr3809y2E3ZDYxx_XMniGWFo7zIH3Qvel2N4Cl96_NwqdAxQ7/s400/JPopupMenu01.png"></a></div>
<p style="text-align:justify">Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete de fuentes<br /></span><br /><span class="keyword">import</span> java.awt.event.MouseEvent;<br /><span class="keyword">import</span> javax.swing.JOptionPane;<span class="comment">//Importaciones<br /></span><span class="keyword">import</span> javax.swing.table.DefaultTableModel;<br /><br /><span class="comment">/**<br /> *<br /> * @author ECS<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoMenu <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoMenu<br /> */</span><br /> <span class="keyword">public</span> UsoMenu() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar formulario<br /></span> tableModel();<span class="comment">//Método de inicio<br /></span> }<br /> <span class="keyword">private</span> DefaultTableModel model;<span class="comment">//Variable de clase</span>
</pre>
</body>
</html>
<p style="text-align:justify">Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> tableModel(){<br /> <span class="comment">//DefaultTableModel para trabajar con tablas<br /></span> table.getColumnModel().getColumn(<span class="literal">0</span>).setPreferredWidth(<span class="literal">10</span>);<br /> table.getColumnModel().getColumn(<span class="literal">1</span>).setPreferredWidth(<span class="literal">150</span>);<br /> table.getColumnModel().getColumn(<span class="literal">2</span>).setPreferredWidth(<span class="literal">150</span>);<br /> table.getColumnModel().getColumn(<span class="literal">3</span>).setPreferredWidth(<span class="literal">20</span>);<br /> model = (DefaultTableModel)table.getModel();<br /> model.setRowCount(<span class="literal">0</span>);<br /> }<br /> <span class="keyword">private</span> <span class="keyword">void</span> agregar(){<br /> <span class="comment">//El id agregamos desde código<br /></span> <span class="keyword">int</span> id = table.getRowCount() + <span class="literal">1</span>;<br /> <span class="comment">//Comprobamos que los campos no esten vacios<br /></span> <span class="keyword">if</span>(!nombres.getText().isEmpty() && !apellidos.getText().isEmpty() && !edad.getText().isEmpty()){<br /> <span class="keyword">int</span> ed = <span class="literal">0</span>;<br /> <span class="comment">//Si el datos de edad no es númerico se utiliza 0-cero<br /></span> <span class="keyword">try</span> {<br /> ed = Integer.parseInt(edad.getText());<br /> } <span class="keyword">catch</span> (NumberFormatException e) {<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Se requiere dato numérico para edad..."</span> + e);<br /> }<br /> <span class="comment">//Se agregan datos a la tabla utilizando addRow<br /></span> model.addRow(<span class="keyword">new</span> Object[]{<br /> id, nombres.getText(), apellidos.getText(),ed<br /> });<br /> <span class="comment">//Se limpian los campos al agregar datos <br /></span> limpiar();<br /> }<br /> <span class="keyword">else</span>{<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Faltan datos..."</span>);<br /> }<br /> }<br /> <span class="comment">//Método para limpiar campos<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> limpiar(){<br /> edad.setText(<span class="keyword">null</span>);<br /> nombres.setText(<span class="keyword">null</span>);<br /> apellidos.setText(<span class="keyword">null</span>);<br /> }<br /> <span class="comment">//Método para sumar el número de elementos y suma total de edades<br /></span> <span class="comment">//Se llama desde JPopupMenu Sumar<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> sumar(){<br /> <span class="comment">//Solo se ejecuta si hay almenos una fila<br /></span> <span class="keyword">if</span>(table.getRowCount() > <span class="literal">0</span>){<br /> <span class="keyword">int</span> count = <span class="literal">0</span>;<br /> <span class="keyword">int</span> sum = <span class="literal">0</span>;<br /> <span class="comment">//Se suman los datos...<br /></span> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="literal">0</span>; i < table.getRowCount(); i++) {<br /> count++;<br /> sum += Integer.parseInt(model.getValueAt(i, <span class="literal">3</span>).toString()); <br /> }<br /> <span class="comment">//Se agrega una fila con los datos...<br /></span> model.addRow(<span class="keyword">new</span> Object[]{<br /> count,<span class="string">""</span>,<span class="string">""</span>,sum<br /> });<br /> }<br /> }<br /> <span class="comment">//Método para eliminar filas de la tabla...<br /></span> <span class="comment">//Se llama desde JPopupMenu Eliminar<br /></span> <span class="keyword">private</span> <span class="keyword">void</span> eliminar(){<br /> <span class="keyword">try</span> {<br /> model.removeRow(table.getSelectedRow());<br /> } <span class="keyword">catch</span> (Exception e) {<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"No hay fila seleccionada..."</span>);<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Para el botón “Agregar” utilizamos el evento “ActionPerformed” al igual que para los “JMenuItem”. A diferencia para nuestra “Tabla” utilizamos el evento “MousePressed”, que llamará a nuestro “menú” desplegable emergente haciendo clic derecho. Si hay dudas sobre como agregar “Eventos” a objetos, en las primeras guías de la serie vimos con detalle ese punto.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> agregarActionPerformed(java.awt.event.ActionEvent evt) { <br /> agregar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> tableMousePressed(java.awt.event.MouseEvent evt) { <br /> <span class="keyword">if</span>(evt.getButton()== MouseEvent.BUTTON3){<br /> <span class="comment">//Forma de localizar el punto en que se hace clic<br /></span> <span class="comment">//Parámetro x e y<br /></span> <span class="comment">//BUTTON3, clic derecho<br /></span> popup.show(evt.getComponent(), evt.getX(), evt.getY());<br /> popup.setVisible(<span class="keyword">true</span>);<br /> }<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> SumarActionPerformed(java.awt.event.ActionEvent evt) { <br /> sumar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> EliminarActionPerformed(java.awt.event.ActionEvent evt) { <br /> eliminar();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_-Tb2frJe6keq4lhXfKuO0lV1VmSoBgPnlCpzaRAhh2DQ36z8FcHJUxIj97n8GSW8umcPzTMi0nn5xs3S07OxM08lxWK1AKN1NxTKvhJ-Tp8etm15Alai-6eQGWtC26iPTAE9ljfE751h/s1600/JPopupMenu02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_-Tb2frJe6keq4lhXfKuO0lV1VmSoBgPnlCpzaRAhh2DQ36z8FcHJUxIj97n8GSW8umcPzTMi0nn5xs3S07OxM08lxWK1AKN1NxTKvhJ-Tp8etm15Alai-6eQGWtC26iPTAE9ljfE751h/s1600/JPopupMenu02.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-68154517221638689822014-08-07T09:34:00.000-04:002019-11-21T09:38:13.174-03:00Java básico 064. Función, calculando números primos.<h1>Función para realizar cálculos de números primos en Java.</h1>
<p style="text-align:justify">Ejercicio: Realizar una función que permita calcular números primos en un rango específico.</p>
<p style="text-align:justify">Con esta primera clase calculamos si el número ingresado por el usuario es primo o no.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">import</span> java.util.Scanner;<br /><br /><span class="comment">/**<br /> *<br /> * @author ECS<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> NumerosPrimos {<br /><br /> <span class="comment">/**<br /> * @param args the command line arguments<br /> */</span><br /> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> main(String[] args) {<br /> <span class="comment">//Scanner para obtener datos de la consola.<br /></span> Scanner s = <span class="keyword">new</span> Scanner(System.in);<br /> System.out.print(<span class="string">"Ingresa un número para ver si es primo: "</span>);<br /> <span class="comment">//Guardamos en una variable el número ingresado<br /></span> <span class="keyword">int</span> n = s.nextInt();<br /> <span class="comment">//ejecutamos nuestra función<br /></span> <span class="keyword">boolean</span> esPrimo = esPrimo(n);<br /> <span class="comment">//Si devuelve True no es primo, por tanto ! negamos para ajustar al código<br /></span> <span class="keyword">if</span>(!esPrimo){<br /> System.out.println(<span class="string">"El número "</span> + n + <span class="string">" es Primo."</span>); <br /> }<br /> <span class="keyword">else</span>{<br /> System.out.println(<span class="string">"El número "</span> + n + <span class="string">" no es Primo."</span>); <br /> }<br /> }<br /> <span class="comment">//La función recibe un entero como argumento<br /></span> <span class="keyword">static</span> <span class="keyword">boolean</span> esPrimo(<span class="keyword">int</span> n){<br /> <span class="comment">//inicializamos una variable boolean<br /></span> <span class="keyword">boolean</span> b = <span class="keyword">false</span>;<br /> <span class="comment">//Los número negativo no entran como primos<br /></span> <span class="keyword">if</span>(n < <span class="literal">0</span>){<br /> b = <span class="keyword">true</span>;<br /> }<br /> <span class="comment">//El 1,2,3,5 son primos conocidos por tanto las obviamos<br /></span> <span class="keyword">else</span> <span class="keyword">if</span>(n != <span class="literal">1</span> && n != <span class="literal">2</span> && n != <span class="literal">3</span> && n != <span class="literal">5</span>){<br /> <span class="comment">//Con un for recorremos los números intermedios en 1 y n<br /></span> <span class="comment">//Comprobamos que el módulo con alguno de ellos de 0-cero<br /></span> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="literal">2</span>; i < n; i++) {<br /> <span class="comment">//Si b es true, demuestra que n no es primo<br /></span> <span class="keyword">if</span>(b){<br /> <span class="keyword">break</span>;<br /> }<br /> b = (n%i == <span class="literal">0</span>);<br /> } <br /> }<br /> <span class="comment">//Si n es 1,2,3 o 5 se false, que es primo.<br /></span> <span class="keyword">else</span>{<br /> b = <span class="keyword">false</span>;<br /> }<br /> <span class="keyword">return</span> b;<br /> }<br /> <br />}
</pre>
</body>
</html>
<p style="text-align:justify">Con la segunda clase podremos especificar un rango de números, en esta caso listamos los numero primos del 1 al 1000. Abajo anexamos una imagen con los primos del 1 al 1000; sirve para comprobar la funcionalidad del código.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC5LdC8iCuMy5JEZPIc_MNUt-o3Gq13_m-x_virhReVuPEq5wwb7MagiVN6a45Pb2IKo6m27KUUaOeUTIDZnnYqfDX-NBsI7Yqxfk8UoUaxN6lRj7agqabH_coIRQjaXjEBwY164dQEvs_/s1600/numPrimos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC5LdC8iCuMy5JEZPIc_MNUt-o3Gq13_m-x_virhReVuPEq5wwb7MagiVN6a45Pb2IKo6m27KUUaOeUTIDZnnYqfDX-NBsI7Yqxfk8UoUaxN6lRj7agqabH_coIRQjaXjEBwY164dQEvs_/s1600/numPrimos.png"></a></div>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="comment">/**<br /> *<br /> * @author ECS<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> NumerosPrimosDos {<br /><br /> <span class="comment">/**<br /> * @param args the command line arguments<br /> */</span><br /> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> main(String[] args) {<br /> <span class="comment">//Utilizamos un for para comprobar los números primos del 1 al 1000<br /></span> <span class="keyword">int</span> total = <span class="literal">0</span>;<br /> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="literal">0</span>; i < <span class="literal">1000</span>; i++) {<br /> <span class="keyword">boolean</span> esPrimo = esPrimo(i);<br /> <span class="keyword">if</span>(!esPrimo){<br /> System.out.println(<span class="string">"- "</span> + i);<br /> total++;<br /> }<br /> }<br /> System.out.println(<span class="string">"Hay un total de "</span> + total + <span class="string">" números primos."</span>);<br /> }<br /> <span class="comment">//La función recibe un entero como argumento<br /></span> <span class="keyword">static</span> <span class="keyword">boolean</span> esPrimo(<span class="keyword">int</span> n){<br /> <span class="comment">//inicializamos una variable boolean<br /></span> <span class="keyword">boolean</span> b = <span class="keyword">false</span>;<br /> <span class="comment">//Los números negativos no entran como primos, el 1-uno tampoco<br /></span> <span class="keyword">if</span>(n <= <span class="literal">0</span> || n == <span class="literal">1</span>){<br /> b = <span class="keyword">true</span>;<br /> }<br /> <span class="comment">//El 2,3,5 son primos conocidos por tanto las obviamos<br /></span> <span class="keyword">else</span> <span class="keyword">if</span>(n != <span class="literal">2</span> && n != <span class="literal">3</span> && n != <span class="literal">5</span>){<br /> <span class="comment">//Con un for recorremos los números intermedios en 1 y n<br /></span> <span class="comment">//Comprobamos que el módulo con alguno de ellos de 0-cero<br /></span> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="literal">2</span>; i < n; i++) {<br /> <span class="comment">//Si b es true, demuestra que n no es primo y salimos del bucle<br /></span> <span class="keyword">if</span>(b){<br /> <span class="keyword">break</span>;<br /> }<br /> b = (n%i == <span class="literal">0</span>);<br /> } <br /> }<br /> <span class="comment">//2,3 y 5 son los primeros primos conocidos<br /></span> <span class="keyword">else</span>{<br /> b = <span class="keyword">false</span>;<br /> }<br /> <span class="keyword">return</span> b;<br /> }<br /> <br />}<br />
</pre>
</body>
</html>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com2tag:blogger.com,1999:blog-4493955538939889481.post-23315810862428487252014-07-30T10:39:00.000-04:002019-11-21T09:42:39.502-03:00Uso básico de elementos Swing con NetBeans – 22 – Uso de Menú - JMenu.<h1>JMenu, uso básico desde Java.</h1>
<p style="text-align:justify">Para esta guía veremos el uso de los elementos Swing Menús, que incluyen la barra de menú, los ítems como los JMenuItem, JCheckBoxMenuItem y JRadioButtonMenuItem. Para el caso, agregamos un JList para almacenar los datos que se recoge cuando se utiliza con eventos.</p>
<p style="text-align:justify">Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsojMenu). Dentro del formulario agregamos una JList para almacenar los datos que se recoge al ejecutar un evento. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS1NqDuYDijGWSs3rh0mcGzrIjq5SqlGS-2zEimaJ2BLLN2VwkXX_088cYmfiR6edf7UXaoe3DlifMpxmsDpfnnNvPdOIDRrYHLOaeMajEnm8acAzRYzT1oE4T-IB8XOo6BgVPSYyCsU9M/s1600/usoJMenu01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS1NqDuYDijGWSs3rh0mcGzrIjq5SqlGS-2zEimaJ2BLLN2VwkXX_088cYmfiR6edf7UXaoe3DlifMpxmsDpfnnNvPdOIDRrYHLOaeMajEnm8acAzRYzT1oE4T-IB8XOo6BgVPSYyCsU9M/s400/usoJMenu01.png"></a></div>
<p style="text-align:justify">Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCPTmaK44yR4tgWBiKu3EqeXwVy3ir8ttjrE0xhzKdcx9DqAorcBEzn-H-QyqvgjQ49p_JSHrFSIvtZf3awC8hY7A0GPQYtaTZWnOnLaGtN2K5mGlRxyf8JZbmNKbmWicuJjxze4sWu1A9/s1600/usoJMenu02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCPTmaK44yR4tgWBiKu3EqeXwVy3ir8ttjrE0xhzKdcx9DqAorcBEzn-H-QyqvgjQ49p_JSHrFSIvtZf3awC8hY7A0GPQYtaTZWnOnLaGtN2K5mGlRxyf8JZbmNKbmWicuJjxze4sWu1A9/s1600/usoJMenu02.png"></a></div>
<p style="text-align:justify">Códigos utilizados en el constructor e importaciones.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<br /><br /><span class="keyword">import</span> javax.swing.DefaultListModel;<br /><span class="keyword">import</span> javax.swing.ImageIcon;<span class="comment">//Importaciones<br /></span><span class="keyword">import</span> javax.swing.JList;<br /><span class="keyword">import</span> javax.swing.ListSelectionModel;<br /><br /><span class="comment">/**<br /> *<br /> * @author ECS<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJMenu <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJMenu<br /> */</span><br /> <span class="keyword">public</span> UsoJMenu() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar el formulario<br /></span> setTitle(<span class="string">"Uso de JList."</span>);<br /> <span class="comment">//Icono personalizado para el formulario<br /></span> setIconImage(createImageIcon(<span class="string">"/com/swing/basic/img/Login.png"</span>).getImage());<br /> <span class="comment">//Método de arranque.<br /></span> inicio();<br /> }<br /> <span class="keyword">private</span> DefaultListModel modelList;<span class="comment">//Variable de clase.</span>
</pre>
</body>
</html>
<p style="text-align:justify">Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> jRBM.setSelected(<span class="keyword">false</span>);<br /> salir.setIcon(createImageIcon(<span class="string">"/com/swing/basic/img/update.png"</span>));<br /> jCBM.setSelected(<span class="keyword">false</span>);<br /> <span class="comment">//DefaultListModel para manejar las lista.<br /></span> modelList = <span class="keyword">new</span> DefaultListModel();<br /> <span class="comment">//Establecemos algunas propiedades de la lista<br /></span> <span class="comment">//Establecemos el modelo, nos permite agregar y eliminar elementos, etc.<br /></span> jL.setModel(modelList);<br /> <span class="comment">//Intervalo de selección<br /></span> jL.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);<br /> jL.setSelectedIndex(<span class="literal">0</span>);<br /> jL.setVisibleRowCount(<span class="literal">8</span>);<br /> <span class="comment">//Distribución vertical<br /></span> jL.setLayoutOrientation(JList.VERTICAL);<br /> }<br /> <span class="comment">//Método para obtener un archivo de imagen<br /></span> <span class="keyword">protected</span> <span class="keyword">static</span> ImageIcon createImageIcon(String path) {<br /> java.net.URL imgURL;<br /> imgURL = UsoJRadioButton.<span class="keyword">class</span>.getResource(path);<br /> <span class="keyword">if</span> (imgURL != <span class="keyword">null</span>) {<br /> <span class="keyword">return</span> <span class="keyword">new</span> ImageIcon(imgURL);<br /> } <span class="keyword">else</span> {<br /> System.err.println(<span class="string">"Archivo no encontrado: "</span> + path);<br /> <span class="keyword">return</span> <span class="keyword">null</span>;<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Utilizamos el evento “ActionPerformed” para los menús. Si ya vieron alguna guía anterior a esta podrán saber cómo se agrega un evento, la ubicación habitual tanto para la lista de eventos, como también los métodos que hayamos creado al igual de la forma en que se implementan estos eventos y llamadas a métodos.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> jRBMActionPerformed(java.awt.event.ActionEvent evt) { <br /> modelList.addElement(evt);<span class="comment">//Se egrega un elemento a la lista<br /></span> <span class="comment">//evt contiene las propiedades del evento del objeto<br /></span> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> jCBMActionPerformed(java.awt.event.ActionEvent evt) { <br /> modelList.addElement(evt);<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> salirActionPerformed(java.awt.event.ActionEvent evt) { <br /> System.exit(<span class="literal">0</span>);<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) { <br /> modelList.addElement(evt);<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimYuTNBvsznyNw_0U8yva4oXfZ6dV109mxZuLj6ucr_iQ5O3VrKpc9yzH-LkoMglcSZcj2W_cnx4vSLAv4CUIRqwVQFjiilt6WpNWGwoufovobBejoWQaNC9ye_qjos5NoWKCIlzpcyBQo/s1600/usoJMenu03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimYuTNBvsznyNw_0U8yva4oXfZ6dV109mxZuLj6ucr_iQ5O3VrKpc9yzH-LkoMglcSZcj2W_cnx4vSLAv4CUIRqwVQFjiilt6WpNWGwoufovobBejoWQaNC9ye_qjos5NoWKCIlzpcyBQo/s1600/usoJMenu03.png"></a></div> Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-42462482124354743732014-07-23T10:59:00.000-04:002019-11-21T09:44:19.726-03:00Uso básico de elementos Swing con NetBeans – 21 – Uso de JList. Ejemplo 2.<h1>Manejo de JList en Java</h1>
<p style="text-align:justify">En este ejemplo, a diferencia de la anterior modificaremos ciertas propiedades de la lista para que se ordene de forma horizontal y la posibilidad de seleccionar más de un elemento de la lista. Si ya realizaron en el ejemplo 1, podrán modificar solamente ciertas partes del código anterior.</p>
<p style="text-align:justify">Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJList). Agregamos a nuestro formulario un JList junto con dos botones de comando para agregar y eliminar datos y un campo de texto para ingresar datos. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicy8o-c3CZyI6uYrC1QNIWD7kkHpojNI-fS_W1_ANKfUNB61B0MHgOCVe-4shCgwyh5IoJF_3s-JdygbLYT_MPOhRdNcinkeoNLQ4Af1OUyCX0la5dj4HQNCA5ebEg7hHaU-FKZFN6pydV/s1600/usoJList01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicy8o-c3CZyI6uYrC1QNIWD7kkHpojNI-fS_W1_ANKfUNB61B0MHgOCVe-4shCgwyh5IoJF_3s-JdygbLYT_MPOhRdNcinkeoNLQ4Af1OUyCX0la5dj4HQNCA5ebEg7hHaU-FKZFN6pydV/s400/usoJList01.png"></a></div>
<p style="text-align:justify">Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvhR7QxeYAxkBo-s-9DncAd4Ifx6XNL6wF3q03A-2HZFlD06m4Rq9HJhZNkpfIgzCfMMH6yo5lJnBUUuUwYnsR116I5RTCPS0qhWoot_1jxTq32On3Rk1tfw8VrOHYj_lD2vatzg-4oCvr/s1600/usoJList05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvhR7QxeYAxkBo-s-9DncAd4Ifx6XNL6wF3q03A-2HZFlD06m4Rq9HJhZNkpfIgzCfMMH6yo5lJnBUUuUwYnsR116I5RTCPS0qhWoot_1jxTq32On3Rk1tfw8VrOHYj_lD2vatzg-4oCvr/s1600/usoJList05.png"></a></div>
<p style="text-align:justify">Códigos utilizados en el constructor e importaciones.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete de fuentes<br /></span><br /><span class="keyword">import</span> javax.swing.DefaultListModel;<span class="comment">//Lista de importaciones<br /></span><span class="keyword">import</span> javax.swing.ImageIcon;<br /><span class="keyword">import</span> javax.swing.JList;<br /><span class="keyword">import</span> javax.swing.JOptionPane;<br /><span class="keyword">import</span> javax.swing.ListSelectionModel;<br /><br /><span class="comment">/**<br /> *<br /> * @author ECS<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJList <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJList<br /> */</span><br /> <span class="keyword">public</span> UsoJList() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar el formulario<br /></span> setTitle(<span class="string">"Uso de JList."</span>);<br /> <span class="comment">//Icono personalizado para el formulario<br /></span> setIconImage(createImageIcon(<span class="string">"/com/swing/basic/img/Login.png"</span>).getImage());<br /> <span class="comment">//Método de arranque.<br /></span> inicio();<br /> }<br /> <span class="keyword">private</span> DefaultListModel modelList;<span class="comment">//Variable de clase.</span>
</pre>
</body>
</html>
<p style="text-align:justify">Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Array de String para agregar al JList<br /></span> <span class="comment">//Si trabajamos con base de datos, puede ser un ArrayList<br /></span> String nom[] = {<span class="string">"Java"</span>,<span class="string">"PHP"</span>,<span class="string">"C++"</span>,<span class="string">"Basic"</span>,<span class="string">"Bash"</span>,<span class="string">"C#"</span>,<span class="string">"Delphi"</span>,<span class="string">"FoxPro"</span>,<span class="string">"JavaScript"</span>,<br /> <span class="string">"MATLAB"</span>,<span class="string">"Objective-C"</span>,<span class="string">"Python"</span>,<span class="string">"Perl"</span>,<span class="string">"Ruby"</span>,<span class="string">"Visual Basic"</span>};<br /> <span class="comment">//DefaultListModel para manejar las lista.<br /></span> modelList = <span class="keyword">new</span> DefaultListModel();<br /> <span class="comment">//Agregamos datos a la lista utilizando for<br /></span> <span class="keyword">for</span> (String string : nom) {<br /> modelList.addElement(string);<br /> } <br /> <span class="comment">//Establecemos algunas propiedades de la lista<br /></span> <span class="comment">//Establecemos el modelo, nos permite agregar y eliminar elementos, etc.<br /></span> jL.setModel(modelList);<br /> <span class="comment">//Intervalo de selección<br /></span> jL.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);<br /> jL.setSelectedIndex(<span class="literal">0</span>);<br /> jL.setVisibleRowCount(-<span class="literal">1</span>);<br /> <span class="comment">//Distribución horizontal<br /></span> jL.setLayoutOrientation(JList.HORIZONTAL_WRAP);<br /> }<br /> <br /> <span class="keyword">private</span> <span class="keyword">void</span> eliminar(){<br /> <span class="comment">//Método para eliminar elementos de la lista<br /></span> <span class="comment">//Se optiene el índice del los elementos a eliminar<br /></span> <span class="comment">//Los índices se almacenan en un array<br /></span> <span class="keyword">int</span>[] selectedIndices = jL.getSelectedIndices(); <br /> <span class="comment">//Comprobamos que el array no este vacío<br /></span> <span class="keyword">if</span>(selectedIndices.length > <span class="literal">0</span>){<br /> <span class="comment">//Recorremos el array en orden inverso.<br /></span> <span class="keyword">for</span> (<span class="keyword">int</span> i = selectedIndices.length - <span class="literal">1</span>; i >= <span class="literal">0</span>; i--) {<br /> <span class="comment">//Se elimina cada {indice<br /></span> modelList.remove(selectedIndices[i]);<br /> } <br /> }<br /> <span class="keyword">else</span>{<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Selecciona los elementos a eliminar."</span>);<br /> }<br /> <br /> }<br /> <br /> <span class="keyword">private</span> <span class="keyword">void</span> agregar(){<br /> <span class="comment">//Método para agregar elementos a la lista<br /></span> <span class="comment">//Comprobamos que el campo de datos no este vacio<br /></span> <span class="keyword">if</span>(nomText.getText().isEmpty()){<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Campo vacio."</span>);<br /> }<br /> <span class="keyword">else</span>{<br /> <span class="comment">//Utilizando el método enLista, comprobamos que no se repitan los datos.<br /></span> <span class="keyword">if</span>(enLista(nomText.getText())){<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Nombre repetido.."</span>);<br /> }<br /> <span class="comment">//Agregamos elemento y limpiamos campo.<br /></span> <span class="keyword">else</span>{<br /> modelList.addElement(nomText.getText());<br /> nomText.setText(<span class="keyword">null</span>);<br /> } <br /> }<br /> }<br /> <br /> <span class="comment">//Método para comprobar datos repetidos<br /></span> <span class="keyword">protected</span> <span class="keyword">boolean</span> enLista(String name) {<br /> <span class="keyword">return</span> modelList.contains(name);<br /> }<br /> <br /> <span class="comment">//Método para obtener un archivo de imagen<br /></span> <span class="keyword">protected</span> <span class="keyword">static</span> ImageIcon createImageIcon(String path) {<br /> java.net.URL imgURL;<br /> imgURL = UsoJRadioButton.<span class="keyword">class</span>.getResource(path);<br /> <span class="keyword">if</span> (imgURL != <span class="keyword">null</span>) {<br /> <span class="keyword">return</span> <span class="keyword">new</span> ImageIcon(imgURL);<br /> } <span class="keyword">else</span> {<br /> System.err.println(<span class="string">"Archivo no encontrado: "</span> + path);<br /> <span class="keyword">return</span> <span class="keyword">null</span>;<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">El paso siguiente es establece eventos para los botones, esto les dará la funcionalidad que necesitamos. El evento que normalmente se utiliza para este tipo de elementos es el ActionPerformed. Si ya vieron alguna guía anterior a esta podrán saber cómo se agrega un evento, la ubicación habitual tanto para la lista de eventos, como también los métodos que hayamos creado al igual de la forma en que se implementan estos eventos y llamadas a métodos.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> eliminarActionPerformed(java.awt.event.ActionEvent evt) { <br /> eliminar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> agregarActionPerformed(java.awt.event.ActionEvent evt) { <br /> agregar();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrGGpeHTBr1uK4YNgsYeXRlaGtp3RRK3pgceCU5Cu8DxUSoHoshb-1kWSsdmpSO_TJEDR0ObLNeZV6n1oRhJw9D9vL769qmZee8m40XdJzEQJneK4335ngEWhjy2VgouqH7Xi-why3uLl/s1600/usoJList04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrGGpeHTBr1uK4YNgsYeXRlaGtp3RRK3pgceCU5Cu8DxUSoHoshb-1kWSsdmpSO_TJEDR0ObLNeZV6n1oRhJw9D9vL769qmZee8m40XdJzEQJneK4335ngEWhjy2VgouqH7Xi-why3uLl/s1600/usoJList04.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-42354895226481186862014-07-17T10:47:00.000-04:002019-11-21T09:46:04.263-03:00Uso básico de elementos Swing con NetBeans – 20 – Uso de JList. Ejemplo 1.<h1>Manejo básico de JList en Java</h1>
<p style="text-align:justify">JList es uno de los tantos elementos que nos pueden facilitar ordenar y visualizar datos en un formulario, es esta oportunidad veremos cómo agregar, eliminar y verificar repetición de datos dentro de la lista.</p>
<p style="text-align:justify">Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJList). Agregamos a nuestro formulario un JList junto con dos botones de comando para agregar y eliminar datos y un campo de texto para ingresar datos. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbVP6tmVA-1Cv8b0SWfwOJUM0SESSwLeNbfPGYcv2-uVu_3Hu1fsmWo6H3yNKjPPRclGSED7AcCiIynne6mp0lRltjV2B24NaRJ3fKHn4Vg44StKU-3uWIgj0stHdgF8z7VDlfjL7nfPgy/s1600/usoJList01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbVP6tmVA-1Cv8b0SWfwOJUM0SESSwLeNbfPGYcv2-uVu_3Hu1fsmWo6H3yNKjPPRclGSED7AcCiIynne6mp0lRltjV2B24NaRJ3fKHn4Vg44StKU-3uWIgj0stHdgF8z7VDlfjL7nfPgy/s400/usoJList01.png"></a></div>
<p style="text-align:justify">Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmuw3B4Ub1HUGnTYkxMxJkpKBYNsJ5ecGJ1z0B3rAtUwMgAC1oA2Dc6IQnY1bxVSA1qtTRaureCi0-hHZPweuy8ea6sDYA1WtPVzF2u2pEQmE8cQFb1A-R90jivtsGQmEyUApYHr2WWKno/s1600/usoJList02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmuw3B4Ub1HUGnTYkxMxJkpKBYNsJ5ecGJ1z0B3rAtUwMgAC1oA2Dc6IQnY1bxVSA1qtTRaureCi0-hHZPweuy8ea6sDYA1WtPVzF2u2pEQmE8cQFb1A-R90jivtsGQmEyUApYHr2WWKno/s1600/usoJList02.png"></a></div>
<p style="text-align:justify">Códigos utilizados en el constructor e importaciones.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete de fuentes<br /></span><br /><span class="keyword">import</span> javax.swing.DefaultListModel;<span class="comment">//Lista de importaciones<br /></span><span class="keyword">import</span> javax.swing.ImageIcon;<br /><span class="keyword">import</span> javax.swing.JOptionPane;<br /><span class="keyword">import</span> javax.swing.ListSelectionModel;<br /><br /><span class="comment">/**<br /> *<br /> * @author ECS<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJList <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJList<br /> */</span><br /> <span class="keyword">public</span> UsoJList() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar el formulario<br /></span> setTitle(<span class="string">"Uso de JList."</span>);<br /> <span class="comment">//Icono personalizado para el formulario<br /></span> setIconImage(createImageIcon(<span class="string">"/com/swing/basic/img/Login.png"</span>).getImage());<br /> <span class="comment">//Método de arranque.<br /></span> inicio();<br /> }<br /> <span class="keyword">private</span> DefaultListModel modelList;<span class="comment">//Variable de clase.</span>
</pre>
</body>
</html>
<p style="text-align:justify">Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Array de String para agregar al JList<br /></span> <span class="comment">//Si trabajamos con base de datos, puede ser un ArrayList<br /></span> String nom[] = {<span class="string">"Ariel"</span>,<span class="string">"Luís"</span>,<span class="string">"Ana"</span>,<span class="string">"Juan"</span>,<span class="string">"Arnaldo"</span>,<span class="string">"María"</span>,<span class="string">"Perla"</span>};<br /> <span class="comment">//DefaultListModel para manejar las lista.<br /></span> modelList = <span class="keyword">new</span> DefaultListModel();<br /> <span class="comment">//Agregamos datos a la lista utilizando for<br /></span> <span class="keyword">for</span> (String string : nom) {<br /> modelList.addElement(string);<br /> } <br /> <span class="comment">//Establecemos algunas propiedades de la lista<br /></span> jL.setModel(modelList);<br /> jL.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);<br /> jL.setSelectedIndex(<span class="literal">0</span>);<br /> jL.setVisibleRowCount(<span class="literal">7</span>);<br /> }<br /> <br /> <span class="keyword">private</span> <span class="keyword">void</span> eliminar(){<br /> <span class="comment">//Método para eliminar elementos de la lista<br /></span> <span class="comment">//Se optiene el índice del elemento seleccionado<br /></span> <span class="keyword">int</span> selectedIndex = jL.getSelectedIndex();<br /> <span class="comment">//Si selectedIndex es igual a -1, no hay elemento seleccionado<br /></span> <span class="keyword">if</span>(selectedIndex != -<span class="literal">1</span>){<br /> modelList.remove(selectedIndex);<br /> }<br /> <span class="keyword">else</span>{<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Seleccione un elemento de la lista."</span>);<br /> }<br /> }<br /> <br /> <span class="keyword">private</span> <span class="keyword">void</span> agregar(){<br /> <span class="comment">//Método para agregar elementos a la lista<br /></span> <span class="comment">//Comprobamos que el campo de datos no este vacio<br /></span> <span class="keyword">if</span>(nomText.getText().isEmpty()){<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Campo vacio."</span>);<br /> }<br /> <span class="keyword">else</span>{<br /> <span class="comment">//Utilizando el método enLista, comprobamos que no se repitan los datos.<br /></span> <span class="keyword">if</span>(enLista(nomText.getText())){<br /> JOptionPane.showMessageDialog(<span class="keyword">null</span>, <span class="string">"Nombre repetido.."</span>);<br /> }<br /> <span class="comment">//Agregamos elemento y limpiamos campo.<br /></span> <span class="keyword">else</span>{<br /> modelList.addElement(nomText.getText());<br /> nomText.setText(<span class="keyword">null</span>);<br /> } <br /> }<br /> }<br /> <br /> <span class="comment">//Método para comprobar datos repetidos<br /></span> <span class="keyword">protected</span> <span class="keyword">boolean</span> enLista(String name) {<br /> <span class="keyword">return</span> modelList.contains(name);<br /> }<br /> <br /> <span class="comment">//Método para obtener un archivo de imagen<br /></span> <span class="keyword">protected</span> <span class="keyword">static</span> ImageIcon createImageIcon(String path) {<br /> java.net.URL imgURL;<br /> imgURL = UsoJRadioButton.<span class="keyword">class</span>.getResource(path);<br /> <span class="keyword">if</span> (imgURL != <span class="keyword">null</span>) {<br /> <span class="keyword">return</span> <span class="keyword">new</span> ImageIcon(imgURL);<br /> } <span class="keyword">else</span> {<br /> System.err.println(<span class="string">"Archivo no encontrado: "</span> + path);<br /> <span class="keyword">return</span> <span class="keyword">null</span>;<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">El paso siguiente es establece eventos para los botones, esto les dará la funcionalidad que necesitamos. El evento que normalmente se utiliza para este tipo de elementos es el ActionPerformed. Si ya vieron alguna guía anterior a esta podrán saber cómo se agrega un evento, la ubicación habitual tanto para la lista de eventos, como también los métodos que hayamos creado al igual de la forma en que se implementan estos eventos y llamadas a métodos.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> eliminarActionPerformed(java.awt.event.ActionEvent evt) { <br /> eliminar();<br /> } <br /><br /> <span class="keyword">private</span> <span class="keyword">void</span> agregarActionPerformed(java.awt.event.ActionEvent evt) { <br /> agregar();<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMRbr5MRkwSNS79BurPjyAqVWZDy5Zvk-Pa2Pbud8MFNe5ad8DHdyLSrFSRQu5neEaLUCDqrNdQsNPbr_IomFyICj4kZuZK-AfZMYcu_hsyzgV8hqlYoQEssCV0K0Kpyfv9T_dnt2jGGYZ/s1600/usoJList03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMRbr5MRkwSNS79BurPjyAqVWZDy5Zvk-Pa2Pbud8MFNe5ad8DHdyLSrFSRQu5neEaLUCDqrNdQsNPbr_IomFyICj4kZuZK-AfZMYcu_hsyzgV8hqlYoQEssCV0K0Kpyfv9T_dnt2jGGYZ/s1600/usoJList03.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com7tag:blogger.com,1999:blog-4493955538939889481.post-7306723924791429632014-07-11T10:53:00.000-04:002019-11-21T09:48:03.225-03:00Uso básico de elementos Swing con NetBeans – 19 – Uso de JLabel.<h1>JLabel, manejos básico desde Java</h1>
<p style="text-align:justify">JLabel es uno de los elementos más simples en modo diseño, se utiliza en múltiples formas, como etiqueta, para mostrar imágenes, iconos, texto simple, etc. En esta ocasión veremos algunas propiedades básicas de este elemento.</p>
<p style="text-align:justify">Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJLabel). Le agregamos un JPanel al JFrame para tener un poco más organizado y delimitado los elementos, que en este caso solo serán tres JLabel, si el IDE es español completo se muestra como “Etiqueta”. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2UO6w0RTkNl_rdoZ3oMXDjNKWezCtpERy36afM1zS-NTcI8j7AoFLWA0tQOAwAWRUsdFK1jfr82KmCaZotiz9XlNIhKxchTgX_5leMEJRYM1Hpt_CmV2wjaJEbdUNWFFZDtPGMtCyekHl/s1600/usoJLabel01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2UO6w0RTkNl_rdoZ3oMXDjNKWezCtpERy36afM1zS-NTcI8j7AoFLWA0tQOAwAWRUsdFK1jfr82KmCaZotiz9XlNIhKxchTgX_5leMEJRYM1Hpt_CmV2wjaJEbdUNWFFZDtPGMtCyekHl/s400/usoJLabel01.png"></a></div>
<p style="text-align:justify">Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMMgSaAJvuIh9pITkfkYumolcHI9bIPaB2XoxmcH6YzWuuyYYNBRQGpxYwyndHd8scZpon_M2XWEtSrQSvj4TuPLI5olXBZpyD2i89Rgb3HwuvkOop_bAh8FVQExmED9l_0RPJPA-tWyo/s1600/usoJLabel02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMMgSaAJvuIh9pITkfkYumolcHI9bIPaB2XoxmcH6YzWuuyYYNBRQGpxYwyndHd8scZpon_M2XWEtSrQSvj4TuPLI5olXBZpyD2i89Rgb3HwuvkOop_bAh8FVQExmED9l_0RPJPA-tWyo/s1600/usoJLabel02.png"></a></div>
<p style="text-align:justify">Códigos utilizados en el constructor e importaciones.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">package</span> com.swing.basic;<span class="comment">//Paquete de fuente<br /></span><br /><span class="keyword">import</span> javax.swing.ImageIcon;<span class="comment">//Importaciones<br /></span><span class="keyword">import</span> javax.swing.JLabel;<br /><br /><span class="comment">/**<br /> *<br /> * @author ECS<br /> */</span><br /><span class="keyword">public</span> <span class="keyword">class</span> UsoJLabel <span class="keyword">extends</span> javax.swing.JFrame {<br /><br /> <span class="comment">/**<br /> * Creates new form UsoJLabel<br /> */</span><br /> <span class="keyword">public</span> UsoJLabel() {<br /> initComponents();<br /> setTitle(<span class="string">"Uso de JLabel"</span>);<span class="comment">//Título para el Formualario<br /></span> <span class="comment">//Icono personalizado para el formulario<br /></span> setIconImage(createImageIcon(<span class="string">"/com/swing/basic/img/Login.png"</span>).getImage());<br /> <span class="comment">//Centrar formulario<br /></span> setLocationRelativeTo(<span class="keyword">null</span>);<br /> <span class="comment">//Método que arranca con el formulario<br /></span> inicio();<br /> }<br /> <span class="keyword">private</span> ImageIcon ico;<span class="comment">//Variable de clase</span>
</pre>
</body>
</html>
<p style="text-align:justify">Métodos necesarios. En esta ocasión no utilizaremos eventos.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> inicio(){<br /> <span class="comment">//Cambiando algunas propiedades del jLabel1<br /></span> <span class="comment">//Texto que muestra<br /></span> jLabel1.setText(<span class="string">"JLabel - Solo Texto"</span>);<br /> <span class="comment">//Texto de sugerencia o anuncio<br /></span> jLabel1.setToolTipText(<span class="string">"Solo Texto..."</span>);<br /> jLabel1.setOpaque(<span class="keyword">false</span>);<br /> <br /> <span class="comment">//Le asignamos un valor a nuestra variable de clase ico <br /></span> ico = createImageIcon(<span class="string">"/com/swing/basic/img/Save.png"</span>);<br /> <br /> <span class="comment">//jLabel2 con texto e icono<br /></span> jLabel2.setText(<span class="string">"Texto e Icono"</span>);<br /> jLabel2.setToolTipText(<span class="string">"Texto e icono..."</span>);<br /> jLabel2.setIcon(ico);<br /> <span class="comment">//Ubicación del texto con relación al icono<br /></span> jLabel2.setVerticalTextPosition(JLabel.BOTTOM);<br /> jLabel2.setHorizontalTextPosition(JLabel.CENTER);<br /> <br /> <span class="comment">//jLabel3 solo con icono<br /></span> jLabel3.setIcon(ico);<br /> jLabel3.setText(<span class="keyword">null</span>);<br /> jLabel3.setToolTipText(<span class="string">"Solo icono..."</span>);<br /> <br /> <br /> }<br /> <span class="comment">//Método para obtener un archivo de imagen<br /></span> <span class="keyword">protected</span> <span class="keyword">static</span> ImageIcon createImageIcon(String path) {<br /> java.net.URL imgURL = UsoJRadioButton.<span class="keyword">class</span>.getResource(path);<br /> <span class="keyword">if</span> (imgURL != <span class="keyword">null</span>) {<br /> <span class="keyword">return</span> <span class="keyword">new</span> ImageIcon(imgURL);<br /> } <span class="keyword">else</span> {<br /> System.err.println(<span class="string">"Archivo no encontrado: "</span> + path);<br /> <span class="keyword">return</span> <span class="keyword">null</span>;<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align:justify">Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZlAvqH3nT1EccuL_2iLQQNWR_kZBekLLGzm_nnzAe_WCC_SP1A0vYgyxJcURnXV9wXCXPvP8Ij3eVmGpOOnPCDsAkBJZWNtDkg3UVtzd0zkdIOoPLEGVjxtqkTQzCuAibwWTzEXdAUIBN/s1600/usoJLabel03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZlAvqH3nT1EccuL_2iLQQNWR_kZBekLLGzm_nnzAe_WCC_SP1A0vYgyxJcURnXV9wXCXPvP8Ij3eVmGpOOnPCDsAkBJZWNtDkg3UVtzd0zkdIOoPLEGVjxtqkTQzCuAibwWTzEXdAUIBN/s1600/usoJLabel03.png"></a></div>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com1tag:blogger.com,1999:blog-4493955538939889481.post-43886095828047945862014-07-08T11:06:00.000-04:002019-11-21T09:49:45.642-03:00Uso básico de elementos Swing con NetBeans – 18 – Uso de JInternalFrame.<h1>Utilización de JInternalFrame en Java</h1>
<p style="text-align: justify">En esta ocasión veremos la utilidad que se le puede dar a un JInternalFrame. Crearemos un formulario JFrame la cual podrá contener a la vez múltiples formularios internos utilizando una clase preestablecida que extiende a JInternalFrame. Esta es una de las tantas formas en que se puede organizar una aplicación de escritorio.</p>
<p style="text-align: justify">Diseñamos un formulario utilizando un JFrame (Nombre del formulario JInternalFrame). Utilizamos una barra de menú simple para poder ejecutar el método que crea el Formulario interno. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtzs-GFGf8NpwaaRMtew3GB9ANhcIQNEUp_W9_8eYPxC02QJwnzl-WhzkSFfYIeXJMv_poUxXqoWjYoqibqWCs6cpfSdgP4g-c6kwNbnbrWJ3NXOl4SS34GhH4vSwA300vVsK_vaUJ7F_v/s1600/JInternalFrame01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtzs-GFGf8NpwaaRMtew3GB9ANhcIQNEUp_W9_8eYPxC02QJwnzl-WhzkSFfYIeXJMv_poUxXqoWjYoqibqWCs6cpfSdgP4g-c6kwNbnbrWJ3NXOl4SS34GhH4vSwA300vVsK_vaUJ7F_v/s400/JInternalFrame01.png"></a></div>
<p style="text-align: justify">A continuación debemos de crear una clase externa la cual será la plantilla de nuestro formulario interno. Si no está en el mismo paquete que nuestro formulario debemos de importarla.<p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">import</span> javax.swing.JInternalFrame;<br /> <br /><span class="comment">//Clase disponible en oracle.com <br /></span><span class="keyword">public</span> <span class="keyword">class</span> MyInternalFrame <span class="keyword">extends</span> JInternalFrame {<br /> <span class="comment">//Cuenta la cantidad de JInternalFrame<br /></span> <span class="keyword">static</span> <span class="keyword">int</span> openFrameCount = <span class="literal">0</span>;<br /> <span class="comment">//Marca la posición "x" e "y"<br /></span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> xOffset = <span class="literal">30</span>, yOffset = <span class="literal">30</span>;<br /> <br /> <span class="comment">//Contructor para el JInternalFrame<br /></span> <span class="keyword">public</span> MyInternalFrame() {<br /> <span class="comment">/*Parámetros public JInternalFrame(String title, boolean resizable, boolean closable, <br /> boolean maximizable, boolean iconifiable)<br /> */</span><br /> <span class="keyword">super</span>(<span class="string">"Documento. Frame "</span> + (++openFrameCount),<br /> <span class="keyword">true</span>, <span class="comment">//resizable<br /></span> <span class="keyword">true</span>, <span class="comment">//closable<br /></span> <span class="keyword">true</span>, <span class="comment">//maximizable<br /></span> <span class="keyword">true</span>);<span class="comment">//iconifiable<br /></span> <span class="comment">//Tamaño asiganado<br /></span> setSize(<span class="literal">300</span>,<span class="literal">300</span>);<br /> <span class="comment">//Localización en la pantalla.<br /></span> setLocation(xOffset*openFrameCount, yOffset*openFrameCount);<br /> }<br />}
</pre>
</body>
</html>
<p style="text-align: justify">Método único necesario.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">protected</span> <span class="keyword">void</span> frameUno(){<br /> <span class="comment">//Utilizamos nuestra clase MyInternalFrame creado<br /></span> MyInternalFrame frame = <span class="keyword">new</span> MyInternalFrame();<br /> frame.setVisible(<span class="keyword">true</span>);<br /> <span class="comment">//Se agrega al contenedor<br /></span> desktop.add(frame);<br /> <span class="keyword">try</span> {<br /> <span class="comment">//Seleccionable<br /></span> frame.setSelected(<span class="keyword">true</span>);<br /> } <span class="keyword">catch</span> (java.beans.PropertyVetoException e) {<br /> }<br /> }
</pre>
</body>
</html>
<p style="text-align: justify">Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. También el código que debe contener el constructor del JFrame.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRSBcKhzsGqmfCGq-hAML6pAkxGO3V92aAbcAtx56G0-ewJri9Lidlk96CLRdGHa6nsAXC3TIV17sKqdu4jVy3NwQByV3S29V3ALgPbrF-Z3a4EvptwHlpd7IrDhRjG9BcXEea2eOp70ne/s1600/JInternalFrame02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRSBcKhzsGqmfCGq-hAML6pAkxGO3V92aAbcAtx56G0-ewJri9Lidlk96CLRdGHa6nsAXC3TIV17sKqdu4jVy3NwQByV3S29V3ALgPbrF-Z3a4EvptwHlpd7IrDhRjG9BcXEea2eOp70ne/s1600/JInternalFrame02.png"></a></div>
<p style="text-align: justify">Lista de Importaciones. El <pre>import com.app.MyInternalFrame;</pre> depende en que paquete este la clase. Tomar en cuenta.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">import</span> com.app.MyInternalFrame;<br /><span class="keyword">import</span> java.awt.Dimension;<br /><span class="keyword">import</span> java.awt.Toolkit;<br /><span class="keyword">import</span> javax.swing.JDesktopPane;
</pre>
</body>
</html>
<p style="text-align: justify">Códigos utilizados en el constructor.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">public</span> JInternalFrame() {<br /> initComponents();<br /> setLocationRelativeTo(<span class="keyword">null</span>);<span class="comment">//Centrar el formulario<br /></span> setTitle(<span class="string">"Uso de JInternalFrame."</span>);<br /> <span class="keyword">int</span> inset = <span class="literal">80</span>;<br /> <span class="comment">//Dimensión del JFrame<br /></span> Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();<br /> <span class="comment">//parámetros setBounds(int x, int y, int width, int height)<br /></span> setBounds(inset, inset,<br /> screenSize.width - inset*<span class="literal">2</span>,<br /> screenSize.height - inset*<span class="literal">2</span>);<br /> <span class="comment">//JDesktopPane será el contenedor del JInternalFrame<br /></span> desktop = <span class="keyword">new</span> JDesktopPane();<br /> <span class="comment">//Al ejecutar el formulario se crea el primer JInternalFrame ejecutando el <br /></span> <span class="comment">//método que la crea<br /></span> frameUno();<br /> <span class="comment">//Agregamos desktop al JFrame<br /></span> setContentPane(desktop);<br /> <span class="comment">//Posibilita mover el JInternalFrame en la pantalla<br /></span> desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);<br /> }<br /> JDesktopPane desktop;<span class="comment">//Variable de clase</span>
</pre>
</body>
</html>
<p style="text-align: justify">Para el menú utilizaremos el evento “ActionPerformed”, en guías anteriores de esta serie vimos como se implementan los eventos. Seguido el evento que llama a nuestro método.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">private</span> <span class="keyword">void</span> jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { <br /> frameUno();<br /> }
</pre>
</body>
</html>
<p style="text-align: justify">Llegado a esta parte podremos ejecutar nuestro formulario. Como se ve en la imagen, es posible tener multitud de formulario dentro del JFrame, cada uno con sus propiedades específicas. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida) (clic sobre la imagen para ampliar)</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9N1ptaSEsKKoenEFHNCb7b7Lzbk7nyWNP9zaVFl4fKxKHH-JCp_COCRo4gl77uokoubk1Wq0erxHvxiVP-I7Ov2TqLl67_3PiggeTADm020XUj6Rgy35Hu3SGF_hRmVuTewqW_vI1x58e/s1600/JInternalFrame03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9N1ptaSEsKKoenEFHNCb7b7Lzbk7nyWNP9zaVFl4fKxKHH-JCp_COCRo4gl77uokoubk1Wq0erxHvxiVP-I7Ov2TqLl67_3PiggeTADm020XUj6Rgy35Hu3SGF_hRmVuTewqW_vI1x58e/s400/JInternalFrame03.png"></a></div>
Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0tag:blogger.com,1999:blog-4493955538939889481.post-89494833487123594802014-07-03T13:44:00.000-04:002019-11-25T09:57:19.045-03:00Java básico 063. Función, calcular área de un triángulo utilizando fórmula de Herón<h1>Ejercicio: Calcular área de un triángulo utilizando fórmula de Herón.</h1>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Código Java</title>
<style type="text/css">
.code { background:#ffe; border:1px dashed #cc9; padding:.5em 1em; margin:1em; overflow:auto; }
.code .keyword { color:#009; }
.code .comment { color:#999; }
.code .string { color:#c00; }
.code .directive { color:#d00; }
.code .literal { color:#c00; }
.code .variable { color:#060; }
.code hr { border:none; border-top:1px solid #ccc; }
</style>
</head>
<body>
<pre class="code java">
<span class="keyword">public</span> <span class="keyword">class</span> AreaTriangulo{<br /> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> main( String[] args ){<br /> <span class="comment">/*<br /> Calcular área de un triángulo utilizando fórmula de Herón<br /> Lados a, b y c.<br /> Semiperímetro fórmula: s = ((a+b+c)/2);<br /> El Area: area = raiz(s * ((s-a)*(s-b)*(s-c)))<br /> */</span><br /> <span class="keyword">double</span> a;<br /><br /> a = area(<span class="literal">5</span>, <span class="literal">4</span>, <span class="literal">4</span>);<br /> System.out.println(<span class="string">"El área de un triangulo con los lados 5,4,4 es: "</span> + a);<br /><br /> a = area(<span class="literal">4</span>, <span class="literal">4</span>, <span class="literal">4</span>);<br /> System.out.println(<span class="string">"El área de un triangulo con los lados 4,4,4 es: "</span> + a);<br /><br /> a = area(<span class="literal">5</span>, <span class="literal">3</span>, <span class="literal">4</span>);<br /> System.out.println(<span class="string">"El área de un triangulo con los lados 5,3,4 es: "</span> + a );<br /><br /> a = area(<span class="literal">3</span>, <span class="literal">3</span>, <span class="literal">3</span>);<br /> System.out.println(<span class="string">"El área de un triangulo con los lados 3,3,3 es: "</span> + a );<br /> }<br /> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">double</span> area( <span class="keyword">double</span> a, <span class="keyword">double</span> b, <span class="keyword">double</span> c ){<br /> <span class="keyword">double</span> s = ((a+b+c)/<span class="literal">2</span>);<br /> <span class="keyword">double</span> area = (Math.sqrt(s * ((s-a)*(s-b)*(s-c))));<br /> <span class="keyword">return</span> area; <br /> }<br />}
</pre>
</body>
</html>Carlos Chávezhttp://www.blogger.com/profile/10589259468375445158noreply@blogger.com0