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!

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.

    Diferencia entre dos fechas (Java 8)

     

    ¿Recuerdas un evento importante pero no recuerdas qué edad tenías? ¿Quieres saber cuánto tiempo ha transcurrido entre dos fechas? ¿No quieres lidiar con java.util.Calendar?

    En ese caso, tal vez quieras usar Date and Time API (Java 8). Ejemplo:

    import static java.time.temporal.ChronoUnit.*;

    import java.time.chrono.ChronoLocalDate;
    import java.time.chrono.ChronoPeriod;
    import java.time.format.DateTimeFormatter;

    public class Main {
        public static void main(String[] args) {
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
            ChronoLocalDate from = ChronoLocalDate.from(formatter.parse("01/01/2000"));
            ChronoLocalDate to = ChronoLocalDate.from(formatter.parse("01/01/2015"));
            ChronoPeriod period = ChronoPeriod.between(from, to);
            System.out.printf("%d años, %d meses y %d días", period.get(YEARS), period.get(MONTHS), period.get(DAYS));
        }
    }

    Ver demo en línea.

    ¡Por si sirve de algo!

    Login con Facebook parte 1

    ******************************

    Aquí pueden ver la segunda parte del tutorial: Login con Facebook parte 2 http://paraisodeldesarrollador.blogspot.mx/2015/04/login-con-facebook-pa...

    ******************************

    En estos tiempos son cada vez más los sitios web en los que te permiten realizar la autenticación por medio de redes sociales siendo Facebook la más usada para tal fin, en este pequeño tutorial vamos a realizar la conexión para poder autenticarnos a una aplicación externa con nuestra cuenta de Facebook.

    Al momento de la realización del tutorial ocupamos las siguientes versiones: Grails 2.4.4 y Java 1.7

    Crearemos un nuevo proyecto exclusivamente para este ejemplo, en el, lo primero que debemos realizar es la instalación y configuración de Spring Security Core, una opción es como lo muestro aquí (Configurar Spring Security Core Plugin).
    Este tutorial lo vamos a dividir en dos partes, esta primera, la cual consta de las configuraciones que debemos realizar en Facebook para dejar “lista” una aplicación para poder loguearnos y la segunda que tratara sobre el código en nuestra aplicación para enlazar el formulario de login de Facebook.

    Creando una nueva aplicación en Facebook

    1.- Entrar a la url https://developers.facebook.com, la cual al momento de realizar este tutorial muestra lo siguiente:

    Inicializadores (Inicializadores de Instancia)

    Continuando con el post anterior sobre bloques estáticos, pero ahora toca definir los usos, ventajas y desventajas de los inicializadores tambíen conocidos como "inicializadores de instancia", como se puede deducir estos bloques están dedicados para colocar bloques de código para inicializar variables que pertenezcan a la instancia.

    Los inicializadores de instancia son bloques de código que pertenecen a la instancia, y se declaran dentro de la clase entre llaves como a continuación se muestra en el siguiente código:

    package com.ejemplos.inicializadores;

    public class Ejemplo1 {

            {
                    System.out.println(this.getClass().getSimpleName());
            }

            Ejemplo1() {
                    System.out.println("Constructor");
            }

            public static void main(String[] args) {
                    new Ejemplo1();
            }

            {              
                    System.out.println(this.getClass().getName());
            }

            {
                    System.out.println(this.getClass().getSuperclass());
            }

    }

    Salida:

    Ejemplo1
    com.ejemplos.inicializadores.Ejemplo1
    class java.lang.Object

    Constructor

    Obtener el Valor seleccionado de im combo BOx

    Hola que tal amigos de java México saben tengo una pregunta.
    ¿Como obtener el id del item seleccionado?

     @Override
        public void itemStateChanged(ItemEvent e) {
            if (e.getSource() == viEva.cbArea) {
                viEva.cbAspecto.removeAllItems();
               
                String selec =viEva.cbArea.getSelectedItem().toString();
                Object obj = viEva.cbArea.getSelectedItem();
               // System.out.println("ID "+ obj.);
               String slq = "SELECT IdAspecto, Aspecto FROM Aspecto JOIN Area ON Aspecto.IdArea = Area.iDarea WHERE Area='" + selec + "';";

                viEva.cbAspecto.setModel(md.LlenarIndiceCombos(slq));
            }

        }

    el debugear veo que la variable

    obj

    tiene las propiedades de valor y de id, pero no encuentro la manera de como acceder a esas propiedades.
    el metodo con el que lleno los combos es el siguiente

    public DefaultComboBoxModel llenarComboIndiceValor(String sql) {
            result = consultarSQL(sql);
            modeloCombo = new DefaultComboBoxModel();
            int cont = 0;
            String col[]= new String[2];
            try {
    Distribuir contenido