Tiempo de lectura: 5 minutos

Netbeans es una aplicación que contiene todas las herramientas para programar en diferentes lenguajes. Muchos programadores lo han usado para programar aplicaciones Java de escritorio aunque se puede usar también con C/C++, PHP o HTML5. A lo largo de su desarrollo, Netbeans ha pasado por diferentes manos. Empezó con Sun Microsystems , los creadores de Java, pasó a Oracle cuando ésta compró a Sun Microsystems y finalmente llegó a la fundación Apache. Netbeans permite usar la propia plataforma, Netbeans Platform, como una base para nuestras aplicaciones. Facilita mucho la tarea al gestionar diferentes aspectos de la aplicación.

Versión de Java

De forma simplificada, un programa de Java se puede ejecutar en varios sistemas operativos sin hacer cambios. A partir del código fuente de la aplicación se genera un archivo preparado para ejecutarse en la máquina virtual de Java. Ese archivo no se ejecuta directamente en el sistema operativo como sería el caso de un .exe en Windows o un .sh en GNU/Linux sino que se lanza dentro de la máquina virtual de Java. En tiempo de ejecución se traduce ese código que sólo entiende la máquina virtual en instrucciones nativas para cada sistema operativo.

A lo largo del tiempo se han ido publicando versiones de Java con mejoras de diferente tipo. Tenemos Java 8, Java 9, Java 10, etc. Para programar realmente hay dos versiones importantes: Java 8 y Java 11. En el primer caso tenemos una versión con soporte de Oracle y que permite usar Netbeans hasta la versión 8.2. Con Java 11 Oracle introdujo un cambio importante que afecta a las aplicaciones programadas con Java. El resultado es directo: si quieres usar Java 11 o una versión posterior tienes que pasar por caja. No estamos hablando de un pago extra por tener soporte del fabricante sino un pago por cada usuario que use la aplicación. ¿Verdad que no tiene sentido?

Junto a Java se puede encontrar OpenJDK. Además de ser compatible con el Java de Oracle (comparten muchos elementos), no tiene la penalización del pago por usuario. Por esta razón es importante usar esta versión si usamos una versión posterior a Java 8.

Java 8 y algunos de sus problemas

Java 8 se puede encontrar en muchas aplicaciones actuales y recibe actualizaciones con cierta frecuencia. En estas condiciones, ¿por qué no nos quedamos con esta versión si tiene soporte por parte de Oracle?. Hay muchas mejoras que se han introducido en versiones posteriores de Java y que no llegarán a Java 8. Una de estas mejoras es la gestión de pantallas HDPI.

En una aplicación tenemos que tener en cuenta dos parámetros del monitor que afectan a la apariencia de la aplicación: la resolución y el escalado. La resolución indica el número de píxeles que forman la imagen del monitor. Por ejemplo, para Full HD tendríamos 1920 píxeles en horizontal y 1080 en vertical. Los controles de la aplicación se definen en píxeles. El escalado modifica el tamaño de los componentes de la aplicación para que sean más cómodos de ver para el usuario.

Tenemos un monitor que tiene una resolución Full HD y una pantalla de portátil que tiene una resolución de 2k. Al pasar la misma aplicación a una pantalla que tiene más resolución se podrá mostrar más información pero al mismo tiempo se verán más pequeños los controles de la aplicación. Para evitar este problema se aplica un escalado que hace del mismo tamaño los controles que ve el usuario en el monitor y en el portátil.

El problema llega en este punto. Java 8 no trabaja bien con pantallas HDPI y tendremos partes de la aplicación que se escalan bien y otras que no lo hacen. La solución llega en Java 9, que ya no tiene soporte. Lo mismo pasa con Java 10. En este punto tendríamos que pasar a Java 11 y pagar a Oracle por usuario que use nuestro software.

Imagen de Java (http://pixabay.com/es/icono-java-taza-caf%C3%A9-tema-28201/)

Imagen de Java (http://pixabay.com/es/icono-java-taza-caf%C3%A9-tema-28201/)

Netbeans Platform

Puede parecer que Netbeans es únicamente un entorno para programar. La mayoría de los programadores lo han usado de esta forma. Netbeans incluye también un conjunto de librerías que facilitan el desarrollo de aplicaciones complejas. Por ejemplo, se puede programar una aplicación que:

  • Guarde la información en proyectos. Cada proyecto tiene un número diferente de datos que se gestionan dependiendo de su tipo MIME (extensión).
  • Tenga asistentes para guiar al usuario por un proceso que tenga pasos fijos o variables.
  • El código se puede organizar en módulos que reaccionen dependiendo del tipo MIME de los archivos.
  • Puede usar toda la funcionalidad que incluye de serie Netbeans en la aplicación sin tener que programarla desde cero.
  • Sea multiplataforma y que pueda incluir un instalador personalizado para cada sistema operativo.
  • Pueda usar los plugins que ya existen en Netbeans sin necesidad de programarlos desde cero.

Lógicamente estas ventajas tienen asociado una complejidad en el desarrollo. Es necesario conocer bien el funcionamiento de Netbeans Platform y la lógica que hay detrás. Una vez superada esta limitación se pueden conseguir resultados interesantes.

Netbeans 11.3

Netbeans 11.3

Una de las novedades más interesantes que incluye la versión 11.3 de Netbeans es el FlatLAF. Un Look And Feel representa la apariencia que tiene una aplicación Java. Como cada sistema operativo tiene una apariencia diferente en los controles, Java se puede adaptar para que sus controles se integren bien en la apariencia del sistema operativo. Cada sistema operativo tiene su Look And Feel propio. Se puede asignar de forma automática, dependiendo del sistema operativo o de forma manual.

Esta apariencia es multiplataforma y se puede personalizar con diferentes paletas de colores.

FlatLAF - Paleta de color clara

FlatLAF – Paleta de color clara

FlatLAF - Paleta de color oscura

FlatLAF – Paleta de color oscura

Siguiente entrada de la serie

Conclusiones

Un desarrollo nuevo debería usar directamente OpenJDK. Por una parte incluye las últimas funciones de Java y por otra parte resuelve algunos problemas que se encuentran en Java 8. Si queremos usar la última versión de Netbeans hay que usar OpenJDK. Java 8 sólo es compatible con Netbeans 8.2 (la versión de Oracle) y no es compatible con Netbeans 11.3 (la versión de la fundación Apache).

A lo largo de varias entregas explicaré de forma básica el funcionamiento de Netbeans Platform. Dependiendo del interés, no descarto entrar en detalle en algunos puntos concretos. No es excesivamente complicado programar con Netbeans Platform. Lo importante es conocer bien los conceptos básicos. Podéis usar los comentarios para cualquier duda que tengáis.

2 comentarios
  1. miguelangel.bh
    miguelangel.bh Dice:

    Hola!!!

    Buscando información de mi interés el la web en enhorabuena te cruzaste por azar en mi camino.

    Muy útil tu publicación.

    Mira, por interés de aprender un nuevo oficio me propuse auto-aprender algo que me apasiona: recopilar y organizar datos para su posterior análisis. De profesión soy Ingeniero Geologo y durante mucho tiempo trabaje usando base de datos concernientes a datos propios de la exploración y explotación de hidrocarburos. Deseo aprender a diseñar bases de datos y aplicaciones que me permitan manejar datos e información de ámbitos generales. De esta manera he auto-aprendido usar la aplicación Access y con ello he elaborado un sistema de gestión de información para llevar el registro de un conjunto de pacientes que adquieren un determinado tipo de test clínicos. Ahora deseo asumir un nuevo reto que es el de auto-aprender una manera mas sofisticada de realizar lo mismo que realize con Access (Tablas, Relaciones, Cardinalidad, Consultas y Programación), que funcione tanto en Escritorio, Web y Smartphone (Windows, Mac OS, Androide e !OS)

    En función a lo anterior y según tu experiencia. Que lenguaje de programacion y software para la generacion de la interfaz de usuario podrías recomendarme?

    Atte. Miguel Angel

    Responder

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.