Frequently Asked Questions (FAQ)

Does AjaxSwing really work? Yes it does! See the list of our clients and online demos. How does it work? See AjaxSwing Whitepaper.

How long would it take to convert my Swing application to AJAX web application? It depends on the application complexity. Most applications run right after deployment, but they typically require AjaxSwing configuration to better support multithreading and dynamic updates. Since the conversion is automatic, the size of the application does not matter. Most of the time it takes 1-4 weeks to do the deployment, configuration, customization and regression testing to get to 100% working web-based application.

What is the recommended conversion process? See http://www.creamtec.com/services/conversion_to_ajax.html

How is AjaxSwing licensed and how much does it cost? AjaxSwing is licensed under commercial license. The cost depends on the edition type and the number of CPU cores. For prices see http://www.creamtec.com/products/ajaxswing/prices.html

What performance can I expect from the converted web version? AjaxSwing is highly optimized platform that adds minimal overhead to the application. The performance is entirely dependent on the 3 factors: Swing application performance, browser performance and network performance. Modern browsers other then Internet Explorer offer performance comparable to that of a desktop application provided that the amount of displayed information is reasonable. On fast nework and a good browser the converted application can be expected to perform similar to the desktop application in most aspects. For more information see http://creamtec.com/products/ajaxswing/doc/AjaxSwingScalabilityPerformance.html

Can CreamTec guarantee that AjaxSwing will convert my application? CreamTec guarantees that all standard Swing features will work in the converted application subject to HTTP and HTML limitations. For customers who purchased a commercial license and used our Professional Services to do the conversion we guarantee 100% functionality of all features.

What operating systems and platforms does AjaxSwing run on? AjaxSwing is written purely in Java and it doesn't use any native calls, which means that it runs on most platforms that have Sun's JDK. However, because AjaxSwing integrates very closely with JVM we can only guarantee correct execution on the platforms that we have tested. So far this includes Windows NT, Windows 2000, Solaris, HP-UX, IBM AIX and Linux. For details see Requirements on installation and running.

What web servers and servlet engines can I use with AjaxSwing? Any web/app server or servlet engine that runs Oracle JDK 1.7. For a complete list and details on how to setup AjaxSwing with your servlet engine refer to Installation and Setup instructions.

Will AjaxSwing convert my application? AjaxSwing supports 99% of Swing functionality, and if your application uses standard Swing components and features, it should work out of the box. There are obvious limitations imposed by HTTP and HTML, so certain aspects of Desktop applications typically do not convert automatically. Applicaitons that use threading or custom drawing require minor tweaks, but the majority of the applications can run as AJAX sites.

Are there step-by-step instructions on setting up AjaxSwing and web-enabling my application? Yes. Please refer to Installation and Setup instructions.

Does AjaxSwing support custom controls (e.g. my own controls, JBCL, KLGroup JClass)? AjaxSwing supports most AWT and Swing controls and all controls derived from it, most of custom controls should also work out of the box. You can change the default rendering by writing custom renderers.

Can I customize AjaxSwing to change the default mapping of GUI components to HTML elements? Yes. A number of configurable parameters are specified in the application properties file located in the conf directory of AjaxSwing. For details on the meaning of each parameter refer to Customizating and Configuring AjaxSwing. For advanced customization you can write your own Renderers that will override the default implementation provided by AjaxSwing. Renderers generate HTML for Java controls. This functionality is not provided in the Standard Edition. Follow the link to learn about developing custom renderers.

How can I integrate AjaxSwing application into a JSP or HTML page? The easiest and the cleanest way to integrate AjaxSwing output into a JSP or HTML page is to use <IFRAME> or <FRAME> tag. CreamTec website uses this approach to display demos in the context of the site.

Do I need to have a Java plugin to view pages generated by AjaxSwing? No. You use any standard browser because all it gets is HTML. It doesn't even need to support Java because the Java application executes on the server.

What AWT and Swing components and classes are supported by default by AjaxSwing?

Swing Box, BoxFiller, Icon, JButton, JCheckBox, JComboBox, JDesktopPane, JEditorPane, JInternalFrame, JLabel, JLayeredPane, JList, JMenuBar, JOptionPane, JPanel, JProgressBar, JRadioButton, JRootPane, JSlider, JSeparator, JScrollBar, JScrollPane, JSplitPane, JTable, JTabbedPane, JTextArea, JTextField, JToggleButton, JToolBar, JTree, JViewport, JavaHelp (via Override Action), JFileChooser and others
Layouts All layouts are supported through the use of fixed positioning. Elements on generated HTML pages have their left, top, width and height specified to be exact same value as the Swing component they represent.

AjaxSwing provides a universal SnapshotRenderer that can render any component as an image on the page. It can be used for custom components and as an alternative method of rendering a component in HTML.

What GUI events are supported by AjaxSwing? ActionListener, FocusListener, ItemListener, DocumentListener, TreeSelectionListener, ListSelectionListener, MouseListener and others

What third party libraries are used by AjaxSwing?

Library License
ASMFree Proprietory
Apache Commons FileUploadApache 2.0
Apache TomcatApache 2.0
JSON-RPC-JavaApache 2.0
FreeMarkerBSD-Style
jQueryMIT

Are the converted web pages 508 compliant? If our java app is currently 508 compliant (for user accessibility), will the converted web pages be? 508 imposes requirements on the UI. AjaxSwing simply translated the Swing UI into AJAX UI. If your UI is 508 compliant, the converted UI should be too. There are some subtleties like "alt" tags for images which AjaxSwing uses already for standard images, and you can add them to application images as well.

How does AjaxSwing determine the name of the downloaded file when emulating JFileChooser Save dialog? AjaxSwing calls JFileChooser.getSelectedFile() method to determine the name of the file. If the method returns null, AjaxSwing uses the default download.txt file name. Thus, be sure to set the default file name to the JFileChooser as shown below:

            JFileChooser chooser = new JFileChooser();
            chooser.setApproveButtonText("Select file for export");
            chooser.setSelectedFile(new File("application_export.txt"));
            int returnVal = chooser.showSaveDialog(this);
            if(returnVal == JFileChooser.APPROVE_OPTION) {
                File file = chooser.getSelectedFile();
                // Save data to the selected file
                ...
            }
        

I have a problem running my application through AjaxSwing. Where do I go for help? Refer to Troubleshooting AjaxSwing page or simply search our website.

How to apply received patch from Product Team?

  1. Stop Ajaxswing application;
  2. Extract files from the patch and replace files in your version while honoring the directory structure (for instance files from /lib/install should be copied to /lib/install);
  3. Remove file /conf/lastKnownJdkVersion.txt;
  4. Start Ajaxswing application.