A continuación hay una pequeña librería que nos puede ayudar a la hora de realizar pequeñas tareas. Podemos crear un objeto de ella para usar sus métodos o extender de ella. Tiene su javadoc integrado.
Librería
Etiquetas: java
En el código de a continuación tenemos dos métodos que nos servirán para agregar o quitar elementos de un ComboBox
public DefaultComboBoxModel quitarElementoCombo(JComboBox jc){ //Obtenemos el modelo del combobox DefaultComboBoxModel modelo = (DefaultComboBoxModel) jc.getModel(); //Obtenemos el objeto seleccionado para su eliminación int indice = jc.getSelectedIndex(); //Removemos el elemento "indice" modelo.removeElementAt(indice); //Devolvemos el modelo ya con el elemento quitado return modelo; } public DefaultComboBoxModel añadirElementocombo(JComboBox jc, String elemento){ //Recogemos el modelo del combobox DefaultComboBoxModel modelo = (DefaultComboBoxModel) jc.getModel(); //Añadimos el elemento recibido desde el método modelo.addElement(elemento); //Devolvemos el modelo ya con el elemento agregado return modelo; }
En este ejemplo, que dividiremos en parte, se hará una web de 0 para mostrar resultados usando AJAX consultando una base de datos MySQL.
Comencemos con la plantilla básica de la web :
En la próxima parte crearemos la base de datos y el php para consultar.Ejemplo Web Ajax
You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man.
En algunos casos, o por estética, necesitaremos insertar un jcombobox dentro de una celda de una jtable. El proceso aunque pueda parecer largo y tedioso, es bastante simple, el código esta a continuación.
//Creamos un combo box sin modelo JComboBox< Object > jc = new JComboBox<>(); //Creamos un modelo de combobox y le añadimos 3 elementos DefaultComboBoxModel modelo = new DefaultComboBoxModel(); modelo.addElement("Primero"); modelo.addElement("Segundo"); modelo.addElement("Tercero"); //Asignamos el modelo al combobox jc.setModel(modelo); //Ahora vamos a recoger una columna que será donde insertemos el combobox TableColumn columna = jTable1.getColumnModel().getColumn(0); //Creamos un nuevo editor de celda. Tambien puede insertarse checkboxs y textfields TableCellEditor editor = new DefaultCellEditor(jc); //Le asignamos a la columna el editor creado columna.setCellEditor(editor);
Con el método de a continuación podemos recoger los datos de cualquier JTable y nos devolverá un array bidimensional con los datos
public String[][] recogerJtable(JTable tabla){ //Recogemos las filas y columnas para saber las dimensiones del array bidimensional int filas = tabla.getRowCount(); int columnas =tabla.getColumnCount(); String[][] datos = new String[filas][columnas]; //Con este for recorremos las filas for (int i = 0; i < filas; i++) { //Con este for recorremos las columnas de i fila for (int j = 0; j < columnas; j++) { datos[i][j] = (String) tabla.getValueAt(i, j); } } return datos; }
En el ejemplo siguiente tenemos un botón simple que tiene una transición de "padding". Con el atributo css transition le decimos que los cambios en el padding tengan una transición de 1 segundo, y con el modificador hover le cambiamos el padding (también funcionaría si usáramos javascript para el cambio). El código es el siguiente :
Y aquí el resultado :
Etiquetas: css, html, transition
En este ejemplo veremos como descargar un archivo y en una barra de progreso ver el estado de la descarga. Comencemos por la interfaz:
Ahora crearemos la clase que se encargará de descargar el archivo y animar la barra de progreso.package modelo; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.logging.Level; import java.util.logging.Logger; import vista.principal; /** * * @author pablo */ public class hiloDescargar implements Runnable{ principal p; String ar; public hiloDescargar(principal p, String ar){ this.p = p; this.ar = ar; } @Override public void run() { try { //Creamos una URL usando el String recibido del campo de texto URL url = new URL(ar); URLConnection urlCon = url.openConnection(); //Creamos un archivo para la descarga igual que el archivo remoto File file2 = new File(url.toString()); File file = new File(file2.getName()); //Abrimos streamers y creamos un array de bytes para ir almacenando hay //los datos de descarga y enviarlos al archivo try (FileOutputStream fos = new FileOutputStream(file)) { InputStream is = urlCon.getInputStream(); byte [] array = new byte[1000]; int leido = is.read(array); //Aplicando valores a la barra de progreso int maximo = urlCon.getContentLength(); p.barra.setMinimum(0); p.barra.setMaximum(maximo); p.barra.setValue(0); int actual = 0; while (leido > 0) { fos.write(array,0,leido); leido=is.read(array); p.barra.setValue(actual); actual += leido; p.barra.setString("Descargando "+actual+"/"+maximo+" bytes"); } fos.close(); } } catch (MalformedURLException ex) { Logger.getLogger(hiloDescargar.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(hiloDescargar.class.getName()).log(Level.SEVERE, null, ex); } } }Ahora tan solo nos queda crear un objeto hiloDescargar e introducirlo dentro de un hilo. Usaremos un ActionPerformed sobre el botón de descargar para ello.
this.p.btnDescargar.setActionCommand("btnDescargar"); this.p.btnDescargar.addActionListener((ActionEvent ae) -> { hiloDescargar h = new hiloDescargar(p, p.txtDireccion.getText()); Thread t = new Thread(h); t.start(); });Con esto estaría terminada la aplicación. Proyecto de netbeans : aquí.
Etiquetas: hilos, java, jprogressbar, streamers, thread