The University of Queensland Homepage
School of ITEE ITEE Main Website

 The Java
TM Tutorial
Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search
Feedback Form

Trail: Creating a GUI with JFC/Swing
Lesson: Converting to Swing

Solving Common Conversion Problems

Problem: I'm seeing weird problems that seem either intermittent or dependent on timing.
  • Does your main thread modify the GUI after it's visible? If so, either move the code so that it executes before the GUI is shown, or execute the GUI-modifying code in the event-dispatching thread.
  • Does your program have multiple threads or query/modify the GUI in response to messages from other programs? If so, you should ensure that all GUI-related code is executed in the event-dispatching thread.
  • If your program is an applet that implements the stop and start methods, make sure that any GUI work performed by those methods is executed in the event-dispatching thread.
  • The preceding suggestions assume that your problem is caused by code that isn't thread safe. See Threads and Swing(in the Creating a GUI with JFC/Swing trail) for information about thread safety, and How to Use Threads(in the Creating a GUI with JFC/Swing trail) for information about API you can use to help make your programs thread safe.

Problem: My applet/dialog/frame is blank.

  • Does the applet/frame/dialog perform custom drawing? If so, you need to move the custom drawing code out of the JApplet/JDialog/JFrame subclass and into a custom component that you add to the content pane. For more information, see Step 8 of the 12-step conversion plan.
  • Do you either set the applet/frame/dialog's content pane or add components to the existing content pane? You should. See Using Top-Level Containers(in the Creating a GUI with JFC/Swing trail) for more information.

Problem: In the Swing version of my program, the list/text component is missing its scroll bars.

  • Swing list and text components don't have automatic scroll bars. Instead, you need to add the list or text component to a scroll pane, as described in Component-Specific Conversion Tips.

Problem: Although I'm using the same grid bag layout code as before, one scrollable component is tiny.

  • Make sure you set constraints on the scroll pane, rather than on its client.

Problem: I'm not getting the kinds of events I expected for the Swing component I'm using.

  • Read both the conversion tips and how-to section for the component you're using. Chances are that the relevant event details are covered in those sections.
  • If you think the problem might be a bug, search the bug database at the Java Developer Connection: http://developer.java.sun.com/(outside of the tutorial) .

If you can't find your problem on this page, check Solving Common Component Problems(in the Creating a GUI with JFC/Swing trail).


Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search
Feedback Form