Google

domingo, 27 de abril de 2008

Cambiar el color de fondo y el de fuente del encabezado de un JTable

Para cambiar el color de fondo(background) y el de fuente(foreground) del encabezado de un componente JTable es necesario definir un TableCellRenderer personalizado. Para esto se debe crear una clase que herede de DefaultTableCellRenderer. En nuestro caso utlizamos la clase MyRenderer.java.

Parte del código de la clase MyRenderer.java

public class MyRenderer extends DefaultTableCellRenderer {
Color background;
Color foreground;
public MyRenderer (Color background,Color foreground) {
super();
this.background = background;
this.foreground = foreground;
}
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
comp.setBackground(background);
comp.setForeground(foreground);
return comp;
}
}

Para hacer uso de esta clase solo es necesario escribir este código en el lugar donde esta el jTable:

jTable.getColumnModel().getColumn(0).setHeaderRenderer(new MyRenderer(Color.orange,Color.orange));

La clase MyRenderer tiene definido un constructor que recibe 2 parámetros Color, los cuales corresponden a los colores de fondo y de fuente.

martes, 26 de febrero de 2008

Java FX

Navengando por la red encontramos esta interesante herramienta que lanzó SUN. Se trata de Java FX, un lenguaje que pretende competir y reemplazar a AJAX y FLASH.

Java FX es una extensión a la plataforma Java por lo que utiliza los runtimes Java ya instalados en el cliente local en lugar de JavaScript. Sólo se requiere de la instalación de una librería adicional con Java SE o ME, dependiendo del dispositivo a utilizar.

Aplicacion de ejemplo que puedes encontrar en el weblog de Chris Oliver

Pueden ver ejemplos de aplicaciones con FX en el sitio de Chris Oliver.

Y puedes obtener Java FX desde aqui

Para comenzar a antender FX puedes consultar este tutorial.

martes, 5 de febrero de 2008

Abrir archivo en Windows desde java

Este método permite abrir el archivo que se pasa por parámetro.
Vale aclarar que este método hace uso de librerias propias de windows para poder detectar automaticamente que programa debe abrir para leer el archivo correspondiente.

public void execute(String mensaje){
try{
File file = new File(mensaje);
p=Runtime.getRuntime().exec
("rundll32 SHELL32.DLL,ShellExec_RunDLL " + file.getAbsolutePath());
}
catch (Exception e){
System.out.println("ERROR AL EJECUTAR APLICACION");
}
}

miércoles, 30 de enero de 2008

Generar archivo ZIP

public void generarZip(){
String[] filenames = new String[]{"D:\\01.java", "D:\\02.java","D:\\03.txt"};
// Crear un bufer para leer los archivos
byte[] buf = new byte[1024];
try {
// Crear el archivo ZIP
String outFilename = "D:\\outfile.zip";
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
// Comprimir los archivos
for (int i=0; i FileInputStream in = new FileInputStream(filenames[i]);
// Agregar las entradas ZIP al outputstream.
out.putNextEntry(new ZipEntry(filenames[i]));
// Transferencia de bytes desde el archivo original al archivo ZIP
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
}
out.close();
}
catch (IOException e) {

}
}

sábado, 26 de enero de 2008

Sistema DaMA presentado en ASADES

El programa fue diseñado originalmente para controlar un reactor de investigación de tipo UASB, y fue probado en el monitoreo de un piso radiante solar. La aplicación consta de dos partes, el hardware, que consiste en un módulo NuDAM conectado a un computador vía la interfaz serie y el software, que lo controla. Este último presenta las siguientes características:
a)configuración y control de módulos NUDAM o ADAM vía web
b) medición continua de datos tomados con el mismo,
c) acceso permanente, en tiempo real, a través web, a las interfaces de control, mediante las cuales se configura la adquisición de datos y se visualiza los datos adquiridos o se inspecciona los datos históricos,
d) almacenamiento y manipulación de datos mediante un gestor de bases de datos,
e) capacidad de exportar archivos de datos históricos en formato “txt” y “xml”,
f) capacidad de envío automático de reportes por correo electrónico.

viernes, 25 de enero de 2008

Centrar un Frame

Este método recibe como parámetro un JFrame y permite centrar dicho Frame

public void centerScreen(JFrame _frame) {
Dimension dim = _frame.getToolkit().getScreenSize();
Rectangle abounds = _frame.getBounds();
_frame.setLocation((dim.width - abounds.width) / 2,
(dim.height - abounds.height) / 2);
_frame.requestFocus();
}

lunes, 21 de enero de 2008

Comparar dos JPasswordField

Para comparar el contenido de dos JPasswordField se puede hacer lo siguiente

private boolean isPasswordCorrect(char[] j1,char[] j2) {
boolean valor = true;
int puntero = 0;
if (j1.length != j2.length){
valor = false;
}
else{
while((valor)&&(puntero < j1.length)){
if (j1[puntero] != j2[puntero]){
valor = false;
}
puntero++;
}
}
return valor;
}

El codigo que llama a este método es

if(this.isPasswordCorrect(jp1.getPassword(),jp3.getPassword())){
System.out.println("SON IGUALES");
}
else{
System.out.println("NO SON IGUALES");
}