21/3/07

HTML: Label más text en HTML

Para que quede bien el típico texto con un input box en html, es decir, el label sobre el input y alineado a la izquierda con el mismo.
(ver el código de la página)

Buscar

7/3/07

Java. Detectar una cambio en la selección de un JTable

Sirve por ejemplo para mostrar un dato a mayores sobre el registro que se muestra en la tabla en otra parte del formulario.
Hay que cambiar el "modelo de seleccionador" en principio el ponemos que solamente se pueda seleccionar una sola fila y luego definimos una clase para que se llame al evento y se la añadimos al "modelo de seleccionador" en el evento "Selection". (Pa flipá vamos. Lo que se echa de menos un "OnSelect" de toda la vida)

this.jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);/* lo de que solamente se pueda seleccionar una fila.*/

lsm = this.jTable1.getSelectionModel();
lsm.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e){
MetodoALlamarCuandoCambiaLaSeleccion();
}
};

Para saber la fila seleccionada se usa el método del JTable.getSelectedRow().

java String.format

"%" + posicion del parámetro + "$" + tipo de dato

para formatear cadenas: "s"
String.format(" la cadena %1$s", "es muy bonita") --> la cadena es muy bonita

para formatear enteros: "d"

String.format(" cantidad: %1$d", 4) --> cantidad: 4

1/3/07

Elementos en los jList ( los que muestran una lista cadenas para seleccionar (ListBox))

Un dolor cambiar los datos una vez cargados. Como siempre hay una clase vista (el jList) y una clase modelo (AbstractListModel, DefaultListModel). El netbeans les crea por defecto una clase anónima heredada de AbstractListModel en la que (manda webs el tema) NO SE PUEDE AÑADIR ELEMENTOS así que de necesitarlo (que será lo normal) habrá que asociar ( con setModel(modelo) ) al jList una instancia de la clase DefaultListModel a la que sí que se puede hacer de todo con los elementos y la vista se actualiza automáticamente con los cambios por lo visto (esto último no lo has probado).

Doble click en swing

Resulta que no hay evento doble click (pa flipá vamos) se usa el MouseClicked y se comprueba la cantidad de veces que se ha pulsado. Funciona bien el tema (y no se puede controlar un tercer click solo lo hace con 2 clicks)


private void lTablaMouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount() >= 2){// si es doble click
JOptionPane.showMessageDialog(this,"Doble click"); }
}
}

Creación de un table model específico para un JTable

El enlace del título tiene un tutorial sobre el tema que no está mal. Pero en realidad lo que supongo que se hará es heredar de la clase AbstractTableModel e implementar los métodos abstractos.

http://www.chuidiang.com/java/tablas/tablamodelo/tablamodelo.php