• This is default featured slide 1 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 2 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 3 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 4 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 5 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

imágenes en java

Los métodos getWidth o getHeight de Image me devuenven -1

El Problema: Si te devuelve -1, significa que no pudo obtener el tamaño, es porque no se cargo la imagen aún

Estas cargando las imágenes de la siguiente manera:


Image imgen = Toolkit.getDefaultToolkit().getImage( getClass().getResource("objeto.jpeg") );
int ancho = imgen.getWidth(null);
int alto = imgen.getHeight(null);
System.out.println("ANCHO:"+ancho+" ALTO:"+alto);

La salida es algo como:

ANCHO:-1 ALTO:-1

Esto es porque Toolkit.getDefaultToolkit().getImage() retorna primero y luego empieza a cargar los pixels.

Solución:
Utilizar la Clase Image Icon para cargar ya que este método retorna cuando se termino de cargar la imagen.

Image imgen = new ImageIcon(getClass().getResource("imagen.gif")).getImage();
int ancho = imgen.getWidth(null);
int alto = imgen.getHeight(null);
System.out.println("ANCHO:"+ancho+" ALTO:"+alto);

La salida es algo como:

ANCHO:50 ALTO:50
Share:

CONECCION JAVA CON SQL SERVER 2008

Hola seguro ya revisaron como conectar java con sql 2005 de mi blog click aqui si no es asi, los pasos son similares no hay mucha varianza salvo en ciertas opciones que detallare.
Necesitaremos para esto
  • el driver jdbc 3.0
  • Sql server 2008 (yo use la version express como practica ademas es gratiuta y orientada a educacion)
  • Obviamente el ide java netbeans o otro ide
Les dejo entonces el link para el driver jdbc3.0 http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707
Obviamente descargen el exe.

Luego descargenlo en algun lugar para el ejemplo lo baje a mi escritorio.
PEro basta de palabras vamos con las imagenes....
PASO1:

 PASO2:
 PASO3:
 PASO4:
 PASO 5 Y EL MAS IMPORTANTE
 PASO 6:
 PASO 7:
Ahora que ya tenemos la coneccion desde el netbeans notad que me entrego la ruta url JDBC con esa podras realizar la coneccion desde codigo.

Ahora el codigo java lo pueden consegir de mi anterior publicacion(ver link arriba) o si teneis alguna a modificar simplemente apliquen los cambios.
Share:

Hola liberando mi codigo reproductor mp3 java

Hola hace tiempo presente un reproductor mp3 en java click aqui que implementa una libreria necesaria para leer y descodificar los ficheros mp3 y reproducirlos en tal la interfaz es algo amigable pero con el trabajo y el estudio casi no me da tiempo para buscarle mejoras por lo cual libero mi codigo con licencia GLP v3 en googlecode.
Se que el proyecto da para mas y que mas de alguno esta deseoso de saber como lo realize y poder estudiar el codigo y es mas espero que me ayuden a corregir los errores que tenga,añadir funciones extra,retirar codigo redundante.
aqui la direccion lo eh subido completo es decir solo lo tendran que bajar e importar a un proyecto java http://code.google.com/p/reproductor-mp3-java/

y si eres usuario consola-linux lo bajas asi
svn checkout http://reproductor-mp3-java.googlecode.com/svn/trunk/ reproductor-mp3-java-read-only
Share:

Metodo de ordenamiento propio

Hola como algunos de uds saben existen multiples metodos de ordenar elementos ya sea de un arreglo o de otro tipo de objeto.
Presento mi propio metodo de ordenamiento que me vino a la mente en un chispaso hoy.
por ejemplo si tenemos esto:
ingreso = 5,7,15,0,2,1
de salida tendriamos esto
salida = 0,1,2,5,7,15
Para ello existe la burbuja,el de ciclos y muchos otros mas pero como me gusta generar contenido propio muestro el mio.
Consta de 2 clases para no marearlos con tanto codigo.

Clase Main.java

import java.util.Random;
/**
 *
 * @author JONATHAN
 */
public class Main {
    public static void main(String[] args) {
        // TODO code application logic here
        int[] arreglo_temp = null;
        arreglo_temp = Crear_lista(5);
        Libreria objeto = new Libreria();
        System.out.println("ORIGINAL : "+ objeto.Visualizar(arreglo_temp));
        System.out.println("ORDENADO : "+ objeto.Visualizar(objeto.ordenar(arreglo_temp)));
    }

    private static int[] Crear_lista(int n) {
        int[] arre = new int[n];
        Random generador = new Random();
        for (int i = 0; i < arre.length; i++) {
            arre[i] = generador.nextInt(10);
        }
        return arre;
    }
}
Hasta ahi simple verdad, cumplo con la regla de orientado a objetos, sin nada de complicaciones de codigo.
El metodo Crear_lista genera un array de elementos aleatorios,jejeje asi no parece predeterminado a nada.
Ahora pasemos a la clase Libreria.java es decir la que trabaja con el ordenamiento.

import java.util.ArrayList;
/**
 *
 * @author JONATHAN
 */
class Libreria {
    private int[] vector;
    private int elementos;

    public Libreria() {
    }
    //para imprimir el array de la forma / 0 / 1 / 2 / 3 / 4 /5

    public String Visualizar(int[] v) {
        String s = " / ";
        for (int i = 0; i < v.length; i++) {
            s += v[i] + " / ";
        }
        return s;
    }

    int[] ordenar(int[] v) {
        this.vector = v;
        elementos = vector.length;
        ArrayList uno = new ArrayList();
        for (int i = 0; i < elementos; i++)
        {
            uno.add(vector[i]);//Recorro el arreglo y agrego cada elemento al arraylist
        }
        for(int i=0;i
        {
            vector[i]=toEntero(uno.get(indice_Menor(uno)));//Asigno al arreglo
            //primitivo el elemento menor del arraylist
            uno.remove(toEntero(indice_Menor(uno)));
            //Proceso a eliminar dicho elemento del arraylist
            //Se ejecuta un bucle rescatando el menor elemento.
            //Asi ordenaria mi arreglo
        }
        return vector;
    }

    private int indice_Menor(ArrayList indice) {
        int b = 0;
        for (int i = 0; i < indice.size(); i++) {
            if (toEntero(indice.get(i)) < toEntero(indice.get(b))) {
                b = i;
            }
        }
        return b;
    }

    private int toEntero(Object get) {
        //los arraylist retornan objetos pero necesito trabajar con enteros
        //Simplemente convierto a entero un objeto cuando es llamada esta funcion
        return Integer.parseInt(get.toString());
    }

}



Hagamos un resumen existen los metodos:
  • Visualizar(int[] v);
  • ordenar(int[] v);
  • indice_Menor(ArrayList indice);
  • toEntero(Object get);
El metodo  Visualizar(int[] v) es solo para la presentacion de datos de modo que no aparescan todos juntos.
El metodo ordenar(int[] v) es para realizar el ordenamiento propiamente dicho.
El metodo indice_Menor(ArrayList indice) sirve para obtener el menor elemento de un arraylist y retorna su indice para procesarlo.
Finalmente como los arraylist trabajan con objetos necesito un convertidor porque lo que usare seran enteros, para ese caso esta toEntero(Object get) que me retornara como entero cualquier objeto enviado.
Espero les sirva es algo que se me ocurrio comenten y diganme que les parece.
Share:

Usar un archivo access como Base de datos sin DNS

Alguna ves necesitaron de una base de datos pero no les gusto para nada la idea de usar un manejador que se tenga que instalar pues este es su post.

Vamos a aprender a conectar con un archivo de tipo Access para usarlo como base de datos y usar asi una aplicacion de fines diversos.
Creemos la clase Test.java
Primero declaremos esto en la clase:
String url_Servidor="C:\\SG_COMANDER.mdb";
Connection enlace;  //Sirve para crear un enlace entre la aplicacion y el conector
Statement st = null;  //Crea una secuencia de ordenes
ResultSet resp = null;  // Captura los resultados
Aqui algunos novatos se preguntaran por que pongo \ dos veces si windows reconoce solo uno puesto que en java si pongo uno solo lo reconoce como formato de texto pero si pongo 2 lo reconoce correctamente

Ahora vayamos al constructor

Test()
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String DB = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + url_Servidor;
            enlace = DriverManager.getConnection(DB, "", "");
            // se ponen las 2 comillas en el getConnection ya que el user y pass estan por defecto en blanco por que si existen en el access.


}
Ahora en el Main llamemos un metodo en este caso Cargar()
    private void Cargar() {
        if (enlace != null) {
            try {
                String url_consulta = "SELECT * FROM Tablas";
                st = enlace.createStatement();
                resp = st.executeQuery(url_consulta);
                while (resp.next()) {
                    System.out.println(resp.getObject(1));
                }
            } catch (SQLException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
Aclaracion:
No eh logrado hacer funcionar el metodo booleano first() proveniente del ResultSet sospecho que el conector no lo permite cosa que no ocurre en el conector de SqlServer.
Mi recomendacion es usar el next() asi tu consulta que envie un unico resultado
Share:

Uso de parámetros en aplicaciones java

Como estaran acostumbrados en windows hay programas de consola a los cuales se les pasa parametros o argumentos para configurar.
ejemplo:
Programa_java parametro1 parametro2
Estos argumentos entran a un arreglo de cadenas que se llama String args[] y que es el parámetro del método main.

args.length=2
args[0]=parametro1
args[1]=parametro2

Si la pasamos a codigo java.
public class Main {
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Este programa tiene " + args.length + " argumentos");
    int i;
    for ( i=0; i
{
System.out.println("Elemento "+arg[i]);
}


De esta manera le podemos pasar los parámetros a los programas que creemos y así evitarnos molestos menús de configuración innecesarios, ademas de ser eficaz en caso trabajemos solo en modo consola.
Share:

ASCII A HEX O VICEVERSA

Esto esta dedicado en ciertos casos a quienes tiene coneccion inalambrica en interfaz linux y como simple juego el programa se encarga de convertir cadenas de caracteres de ascii a hexadecimal y viceversa.
El resultado se logra de esta manera con este codigo
String cadena = "thelma";
String valor = Integer.toHexString((int)(cadena.charAt(i))).toUpperCase();
// El chatAt(i) sirve para usar cada caracter y convertir cada caracter al valor hexa obvio esto va en un bucle

y el paso inverso es con
//la variable i es referente a un bucle solo para obtener la posicion que comiensa en 0 y tiene una extencion de 2 caracteres

String valor = cadena.substring(i, i + 2);
como cada valor hexa tiene un equivalente en ascci pero esta en base 2^16 por eso el numero 16 como ratio en el integer.parseInt
 char letra = (char) Integer.parseInt(valor, 16);

Share:

Visitantes

Flag Counter

Popular Posts

Etiquetas

Recent Posts