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.

Kotlin: El nuevo lenguaje del emperador (1 de 3)

Hace unas semanas, Google anunció con bombo y platillo que ya soportan oficialmente Kotlin en Android. Para mucha gente, esta fue la primera vez que escucharon algo acerca del lenguaje y, como era de esperarse, a partir de ese momento han salido supuestos expertos en Kotlin hasta debajo de las piedras, ofreciendo seminarios y cursos y demás.

Yo llevo unos años siguiéndole la pista a Kotlin medio de lejos, por mi trabajo en Ceylon; así que creo que es un buen momento para contarles mi opinión al respecto. No les voy a decir si deben usar Kotlin o no; escribo esto porque estoy seguro que muchos lo van a probar y probablemente lo empiecen a usar en proyectos reales, pero tal vez por razones muy simples como la sintaxis o que si no tiene punto y coma o, simplemente, porque no es Java (esta es la razón más popular por la que recibió tan cálida bienvenida en el mundo de Android).

Manejo de XML

Buen día a todos soy nuevo en esto de java, quisiera saber si me podrian apoyar, quisiera saber cual o cuales son las mejores librerias para poder crear y leer xml, se que existe JAXB que nos permite convertir un objeto a xml y viceversa, sin embargo me gustaria su opinion al respecto que otras herramientas o librerias podria utilizar?

Saludos

Optimizar aplicacion web realizada con JSF, ICEFACES

Buenas amigos:

Este es mi primer post y acudo a los expertos esperando me puedan ayudar con un tema que tengo desde hace algunas semanas.

Tengo una aplicacion web realizada con JSF, ICEFACES y postgresql, el número máximo de usuarios que se conectan simultaneamente son 200, pero incluso con 10 personas, el sistema se a vueto lentisimo, lo raro de todo es que yo lo he usado en PC sin problemas pero los usarios se quejan de la lentitud, y sale muy seguir el error de "CONEXIÓN DE RED INTERRUMPIDA", incluso aunque el internet este estable,

Ahora bien tratando de mejorar la conexion a la base de datos, cambie el datasource con algunos parametros y el problema empeoro.

Aqui viene mi pregunta, ¿como podria mejorar el rendimiento de mi aplicación para que pueda ser más rapida y estable?

Le paso el código del datasource. No tengo mucha experiencia manejando pool de conexiones, pero este es el que implemente, espero me pueda ayudar a optimizar. De antemano muchas gracias!

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
                destroy-method="close">
                <property name="driverClassName" value="${jdbc.driverClassName}" />

Construyendo proyectos con Gradle (instalación con SDKMAN!)


En el post pasado hablé sobre SDKMAN! , una herramienta que nos permite instalar lenguajes de programación como Ceylon, Java, Groovy, etc. Tambien nos permite instalar herramientas como Gradle, la cual nos permite construir y administrar proyectos.

Antes de empezar deberías dar un vistazo al anterior post .

Tan sencillo como teclear desde la terminal (cmd o linux shell) lo siguiente:
$sdk install gradle

Comprobar la versión instalada:
$gradle --version
$gradle -v

Debería salir algo como esto:

------------------------------------------------------------
Gradle 3.5
------------------------------------------------------------

Build time: 2017-04-10 13:37:25 UTC

Método contains de TreeSet

Estimados,

En el API de java, explica que contains, de TreeSet, llama al método equals de Object. Si sobre escribo el método equals en una clase y la paso como parámetro en el meétodo contains, ¿el equals que se ejecuta es el del objeto que pase o siempre se va a ejecutar el equals de object? Tengo dudas, debido a que al sobreescribir debería llamar al equals del objeto pasado en el parámetro, ya que al pasarlo como Object y tener el método sobreescrito Object puede ver la sobreescritura.

Saludos.

Simular un lector de codigo de barra

Algun recurso a librerias que me ayuden a entender como simular un lector de codigo de barras.

Estoy realizando una app android que lee qrcode esta app android se conecta a un socket a un pc por bluetooth y recibe un string, hasta este punto el asunto esta dominado, lo que aún no se como realizar es que el string que recibe mi servidor de socket lo puedo mandar a programas externos como notepad, word, excel o algún punto de venta, la idea es convertir el smartphone en un lector de códigos de barra con varias posibilidades de usar.

Saludos, espero y mi explicación sea comprensible.

JPopupMenu asociarlo a todos los Jtexfield, JtextArea java

Tengo un JPopupMenu y quiero asociarlo a los Jtexfields y los JtextarArea que tengo en un Formulario

  • https://s25.postimg.org/ohnvj2fsr/JMunu.png
  • https://s25.postimg.org/gq75kibnj/Cajas_de_texto.png
  • El problemas es que para asociar en cada JtextField...no me asocia la funcion que debe de ser
    Lo que no quiero es hacer varios JPopupMenu para cada JtextField y JTextArea..

  • https://s25.postimg.org/vnfmliovz/jmp_popup.png
  • hay alguna forma de de asociarlo a todos los componentes del formulario...

    Agregar JComboBox a JTable JAVA

    Hola compañeros de programación, me ha salido una gran duda, aunque parece fácil aún no he llegado a una solución:

    Quiero agregar un JComboBox a un JTable Java, pero solo quiero agregar un Combo en una fila 0 y columna 4, en los demás NO.

    Alguién me puede ayudar:, este es una pequeña parte del desarrollo que hice:

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            // Obtenemos la celda que se esta renderizando
            Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     
            JComboBox comboBox1 = new JComboBox(DATA1);
            comboBox1.setName("c1");
     
            if (fila.compareTo(row) == columna.compareTo(column)) {
                //System.out.println("Fila: "+fila+" - "+"Columna: "+columna);
                table.setValueAt(JComboBox.class, fila, 0);
               
            }
           else {
                c.setBackground(Color.WHITE);
                c.setForeground(Color.BLACK);
            }
            // Regresamos la celda para que se agrege a la tabla
            return c;
        }

    Adjunto una imagen

    Como conseguir trabajo sin tener título universitario relacionado a la programación?

    La pregunta va dirigida a quienes tengan experiencia laboral sin contar con una carrera relacionada a la programación.Yo por ejemplo estudio actualmente ciencias de la tierra y aprendo programación por mi cuenta, y por varios motivos no tengo pensado actualmente cursar una carrera relacionada a la programación, por eso quisiera saber si en su experiencia es posible conseguir trabajo de programador en México sin contar con el título universitario o teniendo título de otra carrera no relacionada. Saludos y gracias por sus respuestas.

    Multiples conexiones en Spring a diferentes Bases de Datos

    Buena tarde compañeros,

    Espero me puedan ayudar con sugerencias y/o comentarios. Actualmente estoy desarrollando una aplicación de gastos médicos, en el que tengo que conectarme a 2 Bases de Datos, la propia de la aplicación y otra donde esta la información de los empleados.

    Lo estoy desarrollando en spring con JDBC

    Mi archivo de configuracion de spring declaro:

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName" value="java:comp/env/jdbc/gastosmedicos" />
    </bean>
         
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg ref="dataSource"/>
    </bean>

    En donde declaro un bean jdbcTemplate que hace referencia a un dataSource y este tiene el JDNI.

    Una de las varias clases de implementacion es esta:

    @Component
    public class DatosFiscalesDaoImpl implements DatosFiscalesDao{
           
            private JdbcTemplate jdbcTemplate;

            public static final String MERGE_DATOS_FISCALES = "MERGE...";
                           
            public void setDatosFiscales(DatFiscalesTO datos){
                    logger.info("DatosFiscalesDaoImpl.setDatosFiscales");
                    jdbcTemplate.update(MERGE_DATOS_FISCALES,

    Distribuir contenido