Time for Swing is running out

A lot has happened since 1998 – the year when Swing extended Java's core idea of "write once, run anywhere" into the realm of graphical user interfaces. Despite Oracle's pledge to support Swing until foreseeable future, the need to migrate has become much more urgent than the official timeline would suggest.

The undeniable fact is that time has eroded away all of Swing's strengths. Let's focus on the following four aspects to understand the severity of the situation:

  • 1998 Swing introduced as part of Java 1.2.
  • 2010 Mobile devices end the desktop-only era
  • 2013 Modern browsers drop Java support (NPAPI)
  • 2018 Java Web Start discontinued
  • ???? End of Oracle’s support


In 1999, a Swing application could work on almost any graphics-enabled computing device without having to be recompiled. Nowadays less than half of devices sold are able to run Swing.

Consistent look and feel

Swing's cross-platform visual consistency was based on hard pixel-based pluggable themes. Today’s displays' pixel densities require difficult workarounds to reach the same consistency.

Single language

If you knew Java, you could start writing Swing UIs right away. Today's UI development is fragmented and opinionated, and even deciding your tech stack can become a huge project.

Freely available and deployable

The basic Swing tools were originally free and the runtime available on nearly all desktops. Nowadays Java SE, Web Start, and Java in browsers are all deprecated or no longer available.

Swing over to Vaadin platform

Like Swing in 1998, Vaadin is at the heart of “write once, run anywhere” application development today. Vaadin brings the simplicity and productivity of traditional Java desktop development to the web.



Vaadin is based on HTML5 and open web standards. Works on all modern browsers and devices. Future-proof platform for Progressive Web Apps (PWA) with Web Components.

Consistent look and feel

The visual components inside Vaadin platform resolve the differences between the implementations of the major browsers, giving your developers less to worry about.

Single language

Component-based, event-driven development model allows your Java developers to fully leverage their existing expertise to build modern web applications.

Freely available and deployable

Ease of deployment is one of the core benefits of web applications over desktop applications. Roll out new releases simply by deploying to a web server.

Want to learn more about what makes Vaadin the easiest way to migrate Java desktop apps to the web?

Migration customers stories

Discover how other businesses have benefited from migrating Swing desktop apps to the web with Vaadin.

HPD Aura 2
HPD LendScape Platform is the “intelligent finance platform” that enables companies of any size to deliver branded, customised, working capital solutions that grow with their business and can be easily accessed by desktop and mobile devices.
LandlordMax Cloud Edition is the Vaadin-powered web-based version of the Java Swing-based LandlordMax real-estate rental software. It was created using the Vaadin 8 framework over the course of 18 months and counting. The platform continues to be in production, as new features are planned and implemented continuously.
ProCountor's migration started in 2013 from a Java Applet version of the application built in 2003. In the project it was decided early on to re-use as much as possible of the existing code-base and maintain interoperability between the Swing implementation (earlier AWT) by hiding the components themselves from the development team under an abstraction layer of generic UI components.

We are here to help

Vaadin has the solutions for your migration problems. Minimize risks and increase your team's productivity by utilizing our expertise, insights and best practices. Our world-class consulting team is ready to help you in the following ways.

Give your application modernization project a boost!

Migration Assessment

Start your migration in confidence. Vaadin's experts and specialized tools identify your application's dependencies on the frameworks you are replacing. Optimal mappings are created between the source and target systems. We'll deliver full data, analysis and work estimates.

Learn More

Proof of Concept (POC)

A proof of concept (POC) is a small software delivery focusing on a few essential technical aspects of your migration. It can deal with performance, integration, reusability of the existing code, maintainability, or other key questions. POC will help you reduce uncertainty and is a great way to gain insights from Vaadin's experts.

Learn More
Custom Components

Retain your workflows; avoid confusing your users. Let us re-build your custom components on Vaadin to make your migration easier. Often the trickiest development work is related to custom interactions and data-heavy components.

Application Foundation

Get productive and writing code that matters immediately. Our web application experts prepare a solid foundation for your team to build on. Spring, security, scalability, frameworks of your choice – all configured and optimized for your Vaadin application.

Swing Migration Resources

Migrating from Swing to Vaadin has been covered quite extensively in our blog, technical articles and documentation. We have collected a set of great starting points for you to learn more on your own.

Prepare a migration

Are you about to start a migration? Before jumping in cold, take a moment to read our tips. We have prepared these three tools to help you understand the road ahead better.

Plan your approach

Compare different application migration strategies and see which one would be ideal for you.

Proof of concept

Test non-functional aspects of your migration to prove technical feasibility or estimate the effort.

Migration assessment

Identify your dependencies, measure effort, and see which options still fit your constraints.


Are you planning on migrating your application to Vaadin? Let’s schedule a call and see how we can help you get there pain-free.