This article looks thread management in a Swing GUI. There's more to success than simply spinning up background threads for long-running operations: you need to get the results of these operations back to the user, control the sequencing of not-quite-independent operations, and provide feedback to the user while the operation is running.
This is a Java Swing tutorial. The Java Swing tutorial is for beginners and intermediate Swing developers. After reading this tutorial, you will be able to develop non-trivial Java Swing applications.
The Doolin framework allows the rapid development of Swing applications. It uses the Spring framework as a support for its configuration and extensibility.
Jspresso is an innovative framework for building rich internet applications. Jspresso dramatically reduces the development cycles needed to get your corporate application up and running while not sacrificing quality, robustness and performance. Jspresso is not just another webapp framework. Jspresso based applications offer the exact same ergonomics as desktop applications while keeping an N-tier, server-centric architecture on a java backend. Jspresso-based applications can be deployed either in Adobe's Flex, qooxdoo, WingS, ULC and Swing, all on the same codebase and without a single specific line of GUI code. And last but not least, Jspresso is free.
For Java developers writing GUI layouts by hand that wants simplicity, power and automatic per platform fidelity, that are dissatisfied with the current layout managers in Swing and SWT, MiGLayout solves all your layout problems. Unlike JGoodies' FormLayout and Clearthought's TableLayout - MiGLayout solves all your layouts with equal ease in a way that is easy to change and maintain. You will understand how the layout will look like when looking at the code.
MiGLayout is the most versatile and flexible Swing and SWT Layout Manager for Java, yet it is very easy to learn and use. It is using String or API type-checked constraints to format the layout. MiGLayout can produce flowing, grid based, absolute (with links), grouped and docking layouts. You will never have to switch to another layout manager ever again! MiGLayout is created to be to manually coded layouts what Matisse/GroupLayout is to IDE supported visual layouts.
Java SwingBuilder is an implementation of a Java Builder geared towards building UI interfaces using Java Swing.
Details
The main class is org.javabuilders.swing.SwingBuilder. It loads the object definition from a YAML file that is in the same package and has the same base name as the calling Java class. So, if you're building org.test.MyFrame.java it will look for org.test.MyFrame.yaml for the object build file (similar to the convention the Apache Wicket web framework uses).
Foxtrot is an easy and powerful API to use threads with the JavaTM Foundation Classes (JFC/Swing).
The Foxtrot API are based on a new concept, the Synchronous Model, that allow you to easily integrate in your Swing code time-consuming operations without incurring in "GUI-freeze" problem, typical of Swing applications.
While other solutions have been developed to solve this problem, being the SwingWorker (see also here for an update) the most known, they are all based on the Asynchronous Model which, for non-trivial Swing applications, carries several problems such as code asymmetry, bad code readability and difficult exception handling.
The Foxtrot API cleanly solves the problems that solutions based on the Asynchronous Model have, and it's simpler to use.
Your Swing code will immediately benefit of:
* code symmetry and readability
* easy exception handling
* improved mantainability
I'm Kirill Grouchnikov and this blog is about user interfaces, imaging and related topics. Half the time i spend writing the code i create new bugs, and the rest i try to chase and fix them without creating too many new ones. For now it seems to be a lost battle.
Sage lets you build rich, highly functional, cross platform web-enabled desktop applications and applets by simply marking up the UI and attaching JavaScript (or Ruby, Python, etc.) event handlers. You simply point sage to a URL and it downloads the markup and accompanying scripts and renders the application or applet in real-time (the same way a browser renders documents). All that is required to run Sage is a Java Virtual Machine (v1.5 or later, v1.6 preferred).