Download the JDK
Search the Tutorials
Hide the TOC
Trail: Creating a GUI with JFC/Swing
Lesson: Using Other Swing Features
Using Other Swing Features
How to Integrate with the Desktop Class
How to Use Actions
How to Use Swing Timers
How to Support Assistive Technologies
How to Use the Focus Subsystem
How to Use Key Bindings
How to Use Modality in Dialogs
How to Print Tables
How to Print Text
How to Create a Splash Screen
How to Use the System Tray
Solving Common Problems Using Other Swing Features
Home Page > Creating a GUI with JFC/Swing > Using Other Swing Features
Solving Common Problems Using Other Swing Features

> Problem: My application is not showing the look and feel I have requested via `UIManager.setLookAndFeel`.

> > You probably either set the look and feel to an invalid look and feel or set it after the UI manager loaded the default look and feel. If you are sure that the look and feel you specified is valid and setting the look and feel is the first thing your program does (at the top of its main method, for example), check whether you have a static field that references a Swing class. This reference can cause the default look and feel to be loaded if none has been specified. For more information, including how to set a look and feel after the GUI has been created, see the look and feel section.

> Problem: Why is not my component getting the focus?

> > - Is it a custom component (for example, a direct subclass of `JComponent`) that you created? If so, you may need to give your component an input map and mouse listener. See How to Make a Custom Component Focusable for more information and a demo.

> > - Is the component inside of a `JWindow` object? The focus system requires a `JWindow`'s owning frame to be visible for any components in the `JWindow` object to get the focus. By default, if you do not specify an owning frame for a `JWindow` object, an invisible owning frame is created for it. The solution is to either specify a visible and focusable owning frame when creating the `JWindow` object or to use `JDialog` or `JFrame` objects instead.

> Problem: Why cannot my dialog receive the event generated when the user hits the Escape key? This worked until I ported to release 1.4.

> > If your dialog contains a text field, it may be consuming the event. (Prior to release 1.4.0, the text field did not get the focus.)

> > - If you want to get the Escape event regardless of whether a component consumes it, you should use a ``KeyEventDispatcher``.

> > - If you want to get the Escape event only if a component has not consumed it, then register a key binding on any `JComponent` component in the `JDialog` object, using the `WHEN_IN_FOCUSED_WINDOW` input map. For more information, see the How to Use Key Bindings page.

> Problem: Why I cannot apply Swing components to a tray icon?

> > Current implementation of the `TrayIcon` class supports the `PopupMenu` component, but not its Swing counterpart `JPopupMenu`. This limitation narrows capabilities to employ additional Swing features, for example, menu icons. See the Bug ID 6285881.
> > - A new `JTrayIcon` class will be created to eliminate this inconvenience. Until then, use AWT components to add a menu item, checkbox menu item, or submenu.

> > If you do not find your problem in this section, consult Solving Common Component Problems.

> > If there is a problem you would like to see mentioned on this page, please send us feedback.

Previous page: How to Use the System Tray
Next page: Laying Out Components Within a Container