Frequently Asked Questions

General question

  1. What is Swingweb?

    Swingweb is an implementation of AWT toolkit that enables AWT/Swing application to operate inside a web container and presented as a web application to the web browser, purely in HTML/CSS/javascript/ajax. There's no code conversion required for the swing application to run in the Swingweb environment.

  2. What are the goals of Swingweb?

    The main goals of Swingweb are to:
    • allow the use of swing UI model for web application development

    • save development cost by merging the development process of swing desktop application and web application

    • enable rapid development using existing GUI editors for web application development

    • promote true component-based platform to maximize code reuse

  3. What components are supported by Swingweb?

    Swingweb supports most AWT and Swing components in jdk (you can check out the list). Hypothetically Swingweb should also support SWT components too through the SWTSwing runtime by chrriis (, but it hasn't really tested with SWTSwing yet.

  4. What component layouts are supported by Swingweb?

    Practically any standard layout in the jdk and even the custom layout written by anyone. This is because Swingweb uses the sizes and positions of the components as laid out by the application layout manager to calculate the required table-based representation. So for any layout that works in swing, it will work on the web.

  5. How compatible is Swingweb with different browsers?

    The compatibility lies in the component template set (a collection of templates for components) implementation. For HTML/javascript, the default component template set in Swingweb distribution ("common" template set) is tested mainly against mozilla, mozilla-firefox and IE6. The hope, for future, is to have developers to develop different base component template set that utilize different advanced features in different browser platforms. As for Ajax, Swinbweb uses GWT (Google Web Toolkit) which should support as many platforms as GWT

  6. Is it easy to change the html that is used to render a particular component to the browser?

    The architecture of Swingweb is purposely geared for web application development. Each component is rendered through a jxp template that contains html/java code that produces the final output to the browser. You can configure any component to be rendered by a template that you wrote to customize how a component will look like in the browser.

  7. How different is Swingweb Vs MVC framework like jsp, struts, jsf

    The main difference is Swingweb application is inherently stateful. Most of the framework like jsp, structs are stateless and try to achieve statefulness in a hard way. But Swingweb application, like a desktop application is inherently stateful. The advantage is it will be easier to develop and the application model becomes more manageable

  8. What are the other similar platform and how does Swingweb compare to them?

    There are quite a bit of similar platforms. The primary similar platforms (which uses swing component model) are
    1. WebOnSwing - an opensource project by Fernando Petrola (seems discontinued)

    2. WebCream - commercial product since 1999

    And some other similar platforms that uses proprietary component model:
    1. Echo Web Application Framework

    2. Millstone

    3. W4

  9. Can Swingweb application be integrated within existing web pages?

    The input and rendering of an application is totally controlled by java code (SwingWebAppManager) so it is possible to integrated Swingweb application inside any site pages that support java (e.g. embed swing application inside your jsp page)

  10. What version of JDK does Swingweb support?

    Swingweb supports jdk 1.4 and jdk 1.5. Older version of jdk is not tested.

  11. How scalable is Swingweb platform?

    There's no official benchmark yet. But Swingweb tries to improve the scalability by using several techniques including lightweight component peers, threadless event queue and lightweight repaintmanager to increase performance and scalability.