Swing y JFC: guía completa para interfaces gráficas en Java 21

Una aplicación Swing lista para distribución debe ser un ejecutable independiente que no requiera que el usuario tenga Java instalado. Java 14+ incluye jpackage para este propósito.

Crear un JAR ejecutable con Maven

// pom.xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.6.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals><goal>shade</goal></goals>
            <configuration>
                <transformers>
                    <transformer implementation="...ManifestResourceTransformer">
                        <mainClass>com.ejemplo.Main</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>
# Compilar y empaquetar
mvn clean package

# Ejecutar el JAR
java -jar target/mi-app-1.0-shaded.jar

jpackage: instalador nativo

# Crear instalador .msi (Windows) / .dmg (macOS) / .deb (Linux)
jpackage \
  --input target/ \
  --name "Mi Aplicacion" \
  --main-jar mi-app-1.0-shaded.jar \
  --main-class com.ejemplo.Main \
  --type msi \
  --icon src/main/resources/icono.ico \
  --app-version 1.0.0

HiDPI: pantallas de alta resolución

Java 9+ gestiona HiDPI automáticamente en la mayoría de plataformas. Para asegurar una escala correcta, añade esta propiedad al inicio:

// Antes de crear ningún componente Swing
System.setProperty("sun.java2d.uiScale", "auto");
// O forzar un factor concreto
System.setProperty("sun.java2d.uiScale", "1.5");

Con FlatLaf, el soporte HiDPI es automático y no requiere configuración adicional.

Continúa tu aprendizaje de Java con los demás tutoriales de esta serie: Tutorial Java Básico, JDBC y Servlets y JSP.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP