Entradas

Mostrando entradas de agosto, 2016

Limpiar varios JTextField a la vez

Imagen
Limpiar una caja de texto Java es la más fácil y a la vez puede ser muy trabajoso cuando tenemos una gran cantidad de JTextField, imagina utilizar el setText("") muchas veces. Pues bien esta vez tengo un ejemplo que mostrarles que con una sola linea de código podemos borrar una caja de texto o cientos a la vez. Primero lo esencial es crear una Clase en Java, yo lo llamare " Limpiar_Caja " y dentro creamos un método llamado limpiar_texto, que recibirá un parámetro del tipo JPanel, más adelante los seguiré explicando. import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class Limpia_Caja { public void limpiar_texto(JPanel panel){ for(int i = 0; panel.getComponents().length > i; i++){ if(panel.getComponents()[i] instanceof JTextField){ ((JTextField)panel.getComponents()[i]).setText(""); } else if(panel.getComponents()[i] insta

setSelectedItem de un JComboBox Java DefaultComboBoxModel

Imagen
Seleccionar un dato de un JComboBox es muy fácil, sobre todo si llenaste con addItem, pero el problema surge que si lo llenaste desde el modelo  DefaultComboBoxModel a partir de una clase. El procedimiento es lógico, así como llenamos el JComboBox de acuerdo al modelo de una clase, también de esa forma debemos de seleccionarlo. Siguiendo la estructura anterior  pondré de nuevo el ejemplo y luego pasamos al  setSelectedItem . La Clase DepartamentoVO: public class DepartamentoVO { private int idDepartamento; private String departamento; public DepartamentoVO(){} public DepartamentoVO(int id, String nombre){ this.idDepartamento = id; this.departamento = nombre; } public int getIdDepartamento() { return idDepartamento; } public void setIdDepartamento(int idDepartamento) { this.idDepartamento = idDepartamento; } public String getDepartamento() { return departamento; } pub

Obtener Id de un JComboBox Java

Imagen
Hay dos formas de llenar de datos a un JComboBox, la manera más sencilla y común es llenado el Combo mediante el addItem y la otra manera mediante el modelo addElement, la primera opción te limita a solo seleccionar el objeto, en cambio el segundo es más modificable. Si por ejemplo llenas tu JComboBox de una base de datos, es muy probable que necesites obtener el id asociado al dato, para ello veremos un ejemplo que te sera de utilidad, sobre Departamentos. La Clase DepartamentoVO: public class DepartamentoVO { private int idDepartamento; private String departamento; public DepartamentoVO(){} public DepartamentoVO(int id, String nombre){ this.idDepartamento = id; this.departamento = nombre; } public int getIdDepartamento() { return idDepartamento; } public void setIdDepartamento(int idDepartamento) { this.idDepartamento = idDepartamento; } public String getDepartamento() { retu

Ocultar linea JTable Java

Imagen
Ocultar las lineas horizontales y verticales de una tabla de Java para mejorar el aspecto de diseño u por otra razón. JTable de Java tiene dos métodos uno para ocultar las líneas horizontales y para las líneas verticales, basta con agregar los siguientes métodos: //Ocultar linea horizontal nombre_tabla.setShowHorizontalLines(false);  //Ocultar linea vertical nombre_tabla.setShowVerticalLines(false);   Al poner en false ambos métodos les estamos diciendo que no muestre las líneas de la tabla, el ejemplo completo sería: import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class Tabla_ejemplo extends JFrame{ DefaultTableModel dt = new DefaultTableModel(new Object[][] {{"1","Carlos"},{"2","Maria"},{"3","Jorge"}, {"4","Pedro"},{"5","Rosa"},{"6",&q

Ocultar cabecera JTable Java

Imagen
La cabecera de un JTable Java es donde están los nombres de las columnas que permite identificar a cada columna, una tabla por defecto muestra el texto en las columnas. Si queremos ocultar las cabeceras de una tabla en Java basta con agregar esta línea de código en la creación de tu JTable Java. nombre_tabla.setTableHeader(null); El método setTableHeader(null) se encarga de no mostrar las columnas, un ejemplo completo sería: import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class Tabla_ejemplo extends JFrame{ DefaultTableModel dt = new DefaultTableModel(new Object[][] {{"1","Carlos"},{"2","Maria"},{"3","Jorge"}, {"4","Pedro"},{"5","Rosa"},{"6","Julieta"}}, new Object[]{"Codigo","Nombre

Personalizar cursor en Java

Imagen
Los cursores de Java vienen por defecto, pero podemos darle nuestro estilo al cursor que se muestra en la aplicación de Java. Tengo un JFrame le agrego componentes y veo la necesidad de que cada componente tenga su propio cursor personalizado, con unas pocas líneas de código podemos hacerlo, primero creamos las variables globales: public Cursor miCursor; Toolkit TK = Toolkit.getDefaultToolkit(); //La ruta de la imagen del cursor //El tamaño puede ser entre 32x32 o 48x48 //La imagen debe ser de fondo transparente ImageIcon ImagenPrograma = new ImageIcon("Imagenes/cur4.png"); Luego agregamos lo siguiente para que se aplique la imagen del cursor: public Frame_Visual() { initComponents(); this.miCursor = TK.createCustomCursor(icono.getImage(), new Point(0,0),"Cursor"); //jPanel es el componente, pero puede ser un boton, caja de texto.... this.jPanel2.setCursor(miCursor); } Para conocer los cursores por defecto de J

Cambiar cursor por defecto de Java

Imagen
Java trate por defecto algunos cursores predefinidos, que podemos utilizarlo en cualquier componente, sea caja de texto, botones, paneles... Lo podes ver en la imagen los tipos de cursores disponibles en Java, con su respectivo nombre, veamos los tipos: //Tipos de cursores Java DEFAULT_CURSOR CROSSHAIR_CURSOR TEXT_CURSOR WAIT_CURSOR SW_RESIZE_CURSOR SE_RESIZE_CURSOR NW_RESIZE_CURSOR NE_RESIZE_CURSOR N_RESIZE_CURSOR S_RESIZE_CURSOR W_RESIZE_CURSOR E_RESIZE_CURSOR HAND_CURSOR MOVE_CURSOR //-Como utilizarlo: //jPanel2 es el componente que quieres cambiarle el cursor //DEFAULT_CURSOR es el nombre del cursor se puede cambiar jPanel2.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); Puede cambiar para cualquier componente. Para personalizar cursor por una imagen: http://masdejava.blogspot.pe/2016/08/personalizar-cursor-en-java.html

Hacer JFrame transparente en Java

Imagen
Un JFrame transparente según el grado que lo asignemos lo podemos hacer con un par de líneas, sobre todo si tienes Netbeans sera más fácil. Empezamos creando un JFrame y le agregamos componentes como botones, imágenes de fondo... Luego nos vamos a la parte del código del JFrame. public Visual_frame() { //Visual_frame es el nombre del JFrame principal Visual_frame.this.setUndecorated(true); initComponents(); //Con esto hacemos que el JFrame no se vea //Sino puedes quitarlo. Visual_frame.this.setBackground(new Color(0,0,0,0)); //Con esto le damos tranparencia a los objetos que tiene el JFrame //Tambien al JFrame, desde 0.0f a 1.0f Visual_frame.this.setOpacity(0.6f); } Con esto estamos dándole un toque de opacidad al JFrame, desde 0.0 que es 100% invisible a 1.0 que es totalmente visible. Aquí tenemos un JFrame del post anterior pero esta vez le di un toque de transparencia.

Hacer un JFrame invisible en Java

Imagen
Para que un JFrame tenga 100% transparencia o sea invisible es muy fácil sobre todo si utilizas Netbeans, todo el trabajo ya lo tienes hecho, empezaremos creando un JFrame. Necesitaras la librería JMouse , que te permite poner imágenes en el JPanel y lo agregas a la paleta de Netbeans, luego sencillamente lo jalas al JFrame.  Luego clic derecho en el JPanel que has jalado, y cambia lo siguientes atributos: UseMode seleccionar IMAGE; icon seleccionar la imagen que usaras de fondo. Luego nos vamos a la parte del código del JFrame y agregamos lo siguiente: //--------------- public Visual() { //Visual es el nombre de tu JFrame Visual.this.setUndecorated(true); initComponents(); //Hacemos invicible el JFrame AWTUtilities.setWindowOpaque(this, false); } //--------------- En vez de AWTUtilities puede ser también: //Inicio es el nombre del JFrame Inicio.this.setBackground(new Color(0,0,0,0)); Los botones salir, maximizar y minimizar lo puedes hacer tu m

Mover ubicacion JFrame con el Mouse en Java

Imagen
Este ejemplo puede servir también para un JPanel o JFrame, al presionar con el mouse sobre el componente y mover de aquí para allá y el componente también se mueve al compás con el mouse presionado. El procedimiento es sencillo, por ejemplo creo un JFrame utilizando Netbeans y al comienzo creo los siguientes parámetros globales. //------ int x = 0, y = 0; public Visual() { initComponents(); } //------ Luego le damos clic derecho en el JFrame, Events/Mouse/mousePressed agremos lo siguiente: x = evt.getX(); y = evt.getY(); Clic derecho en el JFrame, Events/MouseMotion/mouseDragged agregamos lo siguiente: Point point = MouseInfo.getPointerInfo().getLocation(); setLocation(point.x - x, point.y - y); Finalmente el código final sería de esta manera: //Variable globales int x = 0, y = 0; //-------------- //Establecemos la nueva posicion private void formMouseDragged(java.awt.event.MouseEvent evt) { Point point = MouseIn

Librería para cambiar apariencia ventana y frames Java

Imagen
Cambiar el diseño de los JFrame, JButton, JTextField, JDialog.... puede resultar una tarea tediosa cuando queremos que todo el diseño tenga un estilo diferente, por ejemplo el tiempo que nos llevaría hacerlo nosotros mismos. Muchos programadores han desarrollado ciertas librerías que contienen ciertos diseños predefinidos que con una linea de código podemos cambiar toda la apariencia de la aplicación Java. La clase UIManager.setLookAndFeel (""); de Java nos permite cambiar el diseño por completo a la aplicación, por ejemplo, hagamos un ejemplo de esta forma, tenemos un JFrame con todo los componentes y una clase main "VerFrame" que contiene el método main para ejecutar el frame "Visual". Desde el método main VerFrame debemos agregar la línea del LookAndFeel antes de visualizar el JFrame. import javax.swing.UIManager; public class VerFrame{ /** * @param args the command line arguments */ public static void main(Strin

Value '0000-00-00' can not be represented as java.sql.Date

Imagen
Este error me sucedió cuando cuando quiero leer fechas del tipo DATE de la base de datos utilizando Java, sobre todo cuando esos campos están vacíos. Al tratar leer esos campos Date me manda error, la solución que le dí fue con un simple cambio en la URL del JDBC conexión con la base de datos por ejemplo: static String us = "usuario"; static String pass = "contraseña"; static String bd = "base de datos"; static String url = "jdbc:mysql://localhost:3306/"+bd; Quedaría de esta forma: static String us = "usuario"; static String pass = "contraseña"; static String bd = "base de datos"; static String url = "jdbc:mysql://localhost:3306/"+bd+"?zeroDateTimeBehavior=convertToNull"; O en una sola fila la URL sería así: "jdbc:mysql://localhost:3306/base_de_datos ?zeroDateTimeBehavior=convertToNull "

Convertir Byte [] a Imagen en Java

Imagen
Una imagen en byte [] puede estar guardado en una base de datos y queremos recuperar esa imagen en Java y mostrarlo. Yo desarrolle una forma de hacerlo, primero necesitamos de BufferedImage para guardar la imagen, el InputStream para leer el byte [] de la imagen y almacenarlo en el BufferedImage. BufferedImage image = null; InputStream in = new ByteArrayInputStream(imgFoto); image = ImageIO.read(in); Donde imgFoto es tu arreglo de Byte [] de la imagen , por ejemplo supongamos que en una base de datos tengo un campo con fotos y esta en la columna 3 y es del tipo Blob. Blob blob = resultset.getBlob(3); //primero me aseguro que no este vacío. if(blob != null){ try{ byte[] data = blob.getBytes(1, (int)blob.length()); BufferedImage img = null; try{ img = ImageIO.read(new ByteArrayInputStream(data)); } catch(Exception ex){ System.out.println(ex.getMessage()); } ImageIcon icono = new ImageIcon(img); JOptionPane.showMessageDialog(null, "Imagenes",

Convertir File a Byte [] en Java

Imagen
File puede ser la ruta a un archivo como una imagen o cualquier archivo que queremos convertirlo a un arreglo de byte[] para guardarlo por ejemplo en una base de datos. Les mostrare un ejemplo que desarrolle para guardar una imagen, primero localizo la ruta de la imagen, declaro el byte [] y también un InputStream que sera quien guarde la imagen en un arreglo de byte []. File archivo = new File("C:\\Users\\David\\Pictures\\za.jpg"); byte[] imgFoto = new byte[(int)archivo.length()]; InputStream inte = new FileInputStream(archivo); inte.read(imgFoto); Ahora si por ejemplo queremos mostrar cual es la imagen lo haremos de esta forma: Icon icono = new ImageIcon(imgFoto); JOptionPane.showMessageDialog(null, "Imagenes", "Imagen", JOptionPane.INFORMATION_MESSAGE, icono); La aplicación completa corriendo: public static void main(String[] args) { try{ File archivo = new File("C:\\Users\\David\\Pictures\\za.jpg"

Base de datos SQL portable - embedded SQL

Imagen
Base de datos Embebidas o Portables: Las base de datos del estándar SQL, pero portable tienen la misma característica de aquellos grandes BD como MySQL, PostgreSQL, ORACLE.... pero las base de datos portable tienen cierta limitación como por ejemplo no es multi-usuario o poder utilizar la base de datos a la misma vez con diferentes usuarios, pero en los demás tienen el mismo rendimiento. ¿Principales características de las base de datos portable? Según el tiempo que llevo usándolo he podido usar lo siguiente: comando de manipulación de datos (INSERT, UPDATE, DELETE, SELECT), de definición de datos (crear, eliminar, modificar tablas), llaves foráneas que soportan UPDATE y DELETE en CASCADE, soportan llave primaria autoincrementable, procedimientos almacenados, trigger y demás comando básicos SQL. Lista de base de datos portable SQL: 1. SQLite : es una base de datos relacional muy querido en la web, debido a su sencillez y rapidez en el manejo de datos, empresas co