Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

También puedes responder nuestra encuesta para saber en que estado vives!

Desarrollo de libreria para consultas DDL y DML

Tengo un tiempo desarrollando una libreria para facilitar el acceso y manipulacion de bases de datos, se que ya existen muchas soluciones pero creo que la mayoria estan enfocadas para grandes proyectos y son bastante complejas por eso lo empeze como un proyecto personal pero creo que esta en un buen punto para compartirlo con la comunidad. Por el momento solo tiene soporte para mysql y h2 aunque todavia hace falta hacer pruebas y documentar bastante, si alguien esta interesado puede contribuir con el desarrollo.
https://github.com/luischavez/database/tree/dev

Database database = Database.use("mysql");
database.create("users", table -> {
    table.integer("id").incremented();
    table.string("username", 32);
 
    table.primary("id");
});
 
if (database.exists("users")) {
    database.insert("users", "username", "luischavez");
    Row user = database.query("users").first();
    database.drop("users");
}

Imprimir año en formato calendario (ejercicio)

Ya es viernes! así que algo entretenido.

Siguiendo el espíritu de esta pregunta:
http://www.javamexico.org/blogs/jsrivero22/crear_un_calendario

El ejercicio es imprimir el calendario del año así:

                             2015

      January               February               March
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
             1  2  3   1  2  3  4  5  6  7   1  2  3  4  5  6  7
 4  5  6  7  8  9 10   8  9 10 11 12 13 14   8  9 10 11 12 13 14
11 12 13 14 15 16 17  15 16 17 18 19 20 21  15 16 17 18 19 20 21
18 19 20 21 22 23 24  22 23 24 25 26 27 28  22 23 24 25 26 27 28
25 26 27 28 29 30 31                        29 30 31
                                            
       April                  May                   June
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
          1  2  3  4                  1  2      1  2  3  4  5  6
 5  6  7  8  9 10 11   3  4  5  6  7  8  9   7  8  9 10 11 12 13
12 13 14 15 16 17 18  10 11 12 13 14 15 16  14 15 16 17 18 19 20
19 20 21 22 23 24 25  17 18 19 20 21 22 23  21 22 23 24 25 26 27
26 27 28 29 30        24 25 26 27 28 29 30  28 29 30

crear un calendario.!!

lo que quiero es q me pueda mostrar los nombres de la semana dias y mes osea algo asi: ---> Lunes 4 de Febrero pero el problema que tengo es que no me muestra los dias de manera seguida..!!!

package meses;

public class mese {

        public static void main(String[] args) {
       
                String[] dias = {"Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"};
                       
                                                       
                        for (int E=1; E<=31; ){
                                for (int i = 0; i < dias.length;i++) {
                                        if (E<=31){
                                                System.out.println(dias[i]+" "+E+" enero");
                                        }
                                        else{
                                                break;
                                        }                                                                      
                                        E++;
                                }              
                        }
                       
                        for (int f=1; f<=28;){
                                for (int i = 0 ; i < dias.length;i++) {
                                        if (f<=28){
                                                System.out.println(dias[i]+" "+f+" febrero");
                                        }
                                        else{
                                                break;
                                        }                                                                      
                                        f++;
                                }              
                        }
                       
                        for (int m=1; m<=31;){
                                for (int i = 0; i < dias.length;i++) {
                                        if (m<=31){
                                                System.out.println(dias[i]+" "+m+" marzo");
                                        }
                                        else{
                                                break;
                                        }                                                                      
                                        m++;
                                }              
                        }
                       
                        for (int a=1; a<=30;){
                                for (int i = 3; i < dias.length;i++) {

Argumentos Variadicos (Varargs)

Desde Java 5 se incorporo la posibilidad de tener argumentos variádicos (varargs) en métodos y constructores, dichos argumentos permiten al desarrollador ahorrarse la sobrecarga de métodos o constructores que contienen de 0 a N argumentos del mismo tipo.

Antes de Java 5, había de dos sopas, se tenía que sobrecargar el método, con la límitante para el desarrollador de saber la cantidad máxima y mínima del número de argumentos:

public class VarargsExample {

        public static void main(String[] args) {

                Greeting greet = new Greeting();
                greet.greetings("Hugo", "Paco", "Luis");
                greet.greetings("Hugo", "Paco");
                greet.greetings("Hugo");

        }

}

class Greeting {

        public void greetings(String name1) {
                System.out.println("Hi " + name1);
        }

        public void greetings(String name1, String name2) {
                System.out.println("Hi " + name1 + ", " + name2);
        }

        public void greetings(String name1, String name2, String name3) {
                System.out.println("Hi " + name1 + ", " + name2 + ", " + name3);
        }
}

Y la segunda sopa sería tener definidos los elementos dentro de un arreglo:

public class VarargsExample {

Sitio Personal en Vaadin Java

Hola a Todos los javeros de esta comunidad.

Estoy muy interesado en aprender el Framework Vaadin de Java, me la he pasado buscando información en la red de sitios personales pero no he encontrado nada de ejemplos. La mayoria son aplicaciones mas no sitios de contenido hechos con este framework.

Mi pregunta es ... ¿ Es apropiado realizar un sitio web de contenidos como un CMS con Vaadin ? Actualmente me estoy embebiendo con la documentación oficial de vaadin, quiero dominarlo, pero si voy a tener un sitio personal me gustaría trabajarlo en java y no en CMS PHP como Drupal, Wordpress o Joomla, que en un dos por tres ya tenemos un sitio de contenidos pero cuando surgen los problemas, hay tanto que indagar para solucionarlos.

Saludos ...

Operaciones con tiempo (ejercicio)

TL;DR

Escribir un programa en la línea de comandos que reciba: ultima hora de entrada en formato hh:mm AM/PM (o 24hrs) y un total de horas trabajadas en la semana como número de punto flotante (1 hr y media se escribiría 1.50 ).

La salida debe de ser:

1) Cuántas horas se llevan trabajadas hasta el momento de la ejecución del programa sin importar el formato (eg. has trabajado 23.5 hrs o has trabajado 23h30m )
2) A que hora se habrá llegado al siguiente multiplicador de 8. ( eg puedes salir a las 5:58 pm )

Ejemplo de ejecución:

~ $ date
Thu Apr 16 17:50:26 CDT 2015
~ $ t 01:33pm 25.58
Tiempo transcurrido: 29h51m47.999725341s
Salida a las: 19:58

Version larga.

Una forma útil de aprender nuevas cosas es hacer aplicaciones pequeñas de utilería. En mi trabajo tengo reloj checador que me dice cuánto he trabajado pero no dice cuándo habré trabajado N hrs.

Ejemplo, si entro a las 9 am salgo de comer de 12 a 1 y ya son las 4 de la tarde el reloj de ve así:

regular 09:00am
regular 12:00pm     3hrs

comida 12:00pm
comida 01:00pm 

regular 01:00pm
regular 

Ayuda con BD

Hola que tal de nuevo yo jaja que noob soy lo se :c
Ahora se me presenta un problema algo raro no se como solucionarlo bueno lo explico
Tengo la siguiente interface de login

  • https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xat1/t31.0-8/11148576_...
    public void programarEntrar(ActionEvent event){
            String nombre = txtNombre.getText();
            String contra = new String (txtContra.getCharacters().toString());
            Connection db = new conectarDB().conectar_BD();
            try {
                Statement st = db.createStatement();
                ResultSet rs = st.executeQuery("select * from user where usuario = '" +nombre+ "' and contra = '"+contra+"'");
                if(rs.next()){
                    if (rs.getInt(5) == 1){
                        administrarUsuarios usuario = new administrarUsuarios(nombre);
                        frmPrincipalAdministrador administradorPrincipal = new frmPrincipalAdministrador(
                                usuario.getID(),
                                usuario.getNombre(),
                                usuario.getUsuario(),
                                usuario.getContra(),
  • Más fácil que FizzBuzz

    En reddit el día de hoy apareció el siguiente link:

    http://www.thousandtyone.com/blog/EasierThanFizzBuzzWhyCantProgrammersPr...

    "Más fácil que FizzBuzz, ¿por que los programadores no pueden imprimir del 100 al 1?" (por cierto no explica por qué)

    Básicamente se trata de resolver este problema:

    "Imprimir del 100 al 1 con la restricción de que el código debe de comenzar con: for ( int i = 0;, no puede haber nada antes y no se puede usar más de un loop"

    Y explica que muchísimos fallan con eso, el tiempo ideal es de < 2 minutos, y si tardan más de 10 estan fuera (yo tarde 2:07 y funcionó en el primer intento).

    Ahí se los dejo nomás para entretenerse:

    public class M {
        public static void main( String ... a ) {
            for (int i = 0;
         }
    }

    Luego discutimos si tiene algún valor este tipo de preguntas y/o si alguien que se tarda más de 10 minutos o le toma varios intentos vale la pena ser considerado continuar siendo entrevistado.

    Necesito de su ayuda compañeros

    Hola Buen Dia o Tarde segun me lean soy nuevo en java y poco a poco he empesado a empaparme ahora eoy trabado con el try y catch que mi programa ejecute una eception cuando introduscan mal un dato si es int que sea int y no String u otro tipo como puedo hacer eso les dejo mi codigo y cualquier comentario bueno o malo sera muy bien recibido

    public class Computadora {
       
    //DEFINICION DE ATRIBUTOS

        private String Marca;

        private String Modelo;

        private double Precio;

        private String color;

        private String Procesador;

        private String DiscoDuro;

        private String MemoriaRam;

        private int NumSerie;

       

      //DEFINICION DE LOS METDOS SET Y GET

       public void setMarca(String Marca)

       {

           this.Marca=Marca;

       }

       

       public String getMarca()

       {

           return this.Marca;

       }

       public String getModelo() {

            return Modelo;

        }

       public void setModelo(String Modelo) {

            this.Modelo = Modelo;

        }

        public double getPrecio() {

            return Precio;

        }

        public void setPrecio(double Precio) {

            this.Precio = Precio;

    Ceylon: Interoperabilidad con Java

    Ceylon nos permite la interoperabilidad con Java, podemos importar sus librerías e integrarlas a nuestro código. En este post haremos un ejemplo de como importar librerías de Java a nuestro código Ceylon.

    En este caso no usaremos ningún IDE, usaremos la consola de comandos (en mi caso uso Linux). Crearemos una estructura de directorios similar a esta:

    Tendremos estos tres archivos con la extensión *.ceylon:

    1. run.ceylon
    2. module.ceylon
    3. package.ceylon

    Dentro de cada archivo escribiremos:

    run.ceylon

    shared void run(){
       print("Importando librerias de Java en Ceylon");
    }

    module.ceylon

    module holaCeylon "1.0.0"{
        import java.base "7"; // se debe tener instalada la versión 7 del JDK
    }

    package.ceylon
    shared package holaCeylon;

    Ahora volvemos al archivo run.ceylon e importamos la librería java.util.HashMap de Java.

    Distribuir contenido