style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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, parte 3: Métodos de extensión y sobrecarga de operadores

Kotlin permite la sobrecarga de operadores, como Scala y C++, pero de manera controlada, como Groovy. Es decir, no se pueden definir operadores de manera arbitraria como en Scala, donde se puede definir un método ~->, pero sí se pueden tener métodos que se puedan invocar con operadores como +, -, *, [] etc.

Es curioso que siendo un lenguaje con tipado estático, no se fueron por el camino "limpio" para implementar esto, que era definir interfaces para los operadores (por ejemplo, Summable, o Plus, Minus, etc), sino que lo implementaron de igual manera que en Groovy, sólo que pues en Groovy funciona porque es un lenguaje dinámico. Esto presenta dos problemas: primero, que hay que saberse muy bien cuáles son los operadores que se pueden sobreescribir, junto con los nombres de los métodos correspondientes, los cuales no siempre son obvios a la hora de estar implementado uno (Para usar / ¿es divided, quotient, div o qué?) y el otro, que es más difícil saber si una clase tiene operadores sobrecargados o no, ya que hay que revisar los métodos que implementa, en vez de simplemente revisar las interfaces que implementa, y honestamente es más fácil simplemente hacer prueba y error (a ver si funciona si le pongo un +).

Kotlin, parte 2: (not so) typesafe null y otras monerías

Una característica importante de Kotlin es que maneja seguridad en nulos. Esto es algo que varios lenguajes han estado implementando últimamente, porque ahorra muchos dolores de cabeza.

Normalmente, una variable de cualquier tipo que sea objeto, acepta null. En Kotlin no es así; para que una variable acepte null, se necesita especificar de esa forma. Esto no compila:

var x:String = "hola"
x = null

Porque x ha sido definida como de tipo String, y no acepta nulos. Para que acepte nulos, se tiene que definir así:

var x:String? = "hola"
x = null

Los tipos opcionales se pueden usar en parámetros de funciones, tipos de retorno y declaraciones locales.

Cuando se tiene un valor que puede ser null, no se puede usar de manera directa. Hay que verificar que el objeto exista; esto se puede lograr de varias formas:

var x:String? = "hola"
if (x != null) {
  //Aquí dentro, x ya se considera String
  println(x.length)
}
val largo = x?.length //largo será tipo `Int?`
//Se puede usar el operador "Elvis" con tipos opcionales
println(x ?: "no hay x")

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

    Distribuir contenido

    style="display:inline-block;width:728px;height:90px"
    data-ad-client="ca-pub-5164839828746352"
    data-ad-slot="7563230308">