advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement



Title: Professional Java Programming
ISBN: 186100382x
US Price: $ 59.99
Canadian Price:
C$ 89.95
UK Price: £ 45.99
© Wrox Press Limited, US and UK.

Reviews : Java Books :
Professional Java Programming : Using Layout Managers

CardLayout

The CardLayout layout manager allows you to add multiple components to a container, and each component is added and displayed in the same location. However, only one of the components is made visible at any given time, and you can specify which one that should be by calling the first(), last(), next(), and previous() methods defined in CardLayout. Those methods refer to the components added to the container, and display the component that was added in the order corresponding to the method name. For example, first() causes the component added first to appear, last() causes the most recently added one to appear, while next() and previous() allow you to iterate through the components in either a forward or backward direction. In addition, the show() method allows you to specify that a particular component should be displayed, regardless of the order in which it was added to the container relative to the other components.

The CardLayout class is arguably the least useful of the layout managers included with Java. Prior to the introduction of Swing, CardLayout was envisioned as a way to create a tabbed user interface, but the JTabbedPane provides a much better mechanism for doing so. However, CardLayout may still be useful in some cases, such as when constructing a Windows-style "wizard" interface that displays a series of panels one at a time.

Constructing a CardLayout

You can specify horizontal and vertical gap values when you create a new instance of CardLayout and these gaps will be placed around the edges of the component displayed in the container. Specifically, the horizontal gap appears on the left and right sides of the component, and the vertical gap is used at the top and bottom of the component to separate it from the edge of the container.

Constraints

When adding components to a container that uses a CardLayout, you should assign a unique name represented by a String value to each component (in other words, no two of the components in the container should be assigned the same name). This allows you to select which component in the container to display by passing that component's name to the show() method. For example, the following code segment creates a frame that uses a CardLayout for its content pane. Three panels (or "tabs") are added to the content pane, each with a different background color and each assigned a unique name. Once the frame is constructed, the displayTab() method is called, passing it the name of the second (green) tab. That method calls CardLayout's show() method, which causes the specified component to be made visible. After this, the next() method is used to cycle through the tabs one at a time:

import java.awt.*; 
import javax.swing.*; 

public class CardTest extends JFrame { 

  protected CardLayout layout; 

  public static void main(String[] args) { 
    CardTest ct = new CardTest(); 
    ct.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    ct.displayTab("Green Tab"); 
    ct.setSize(400, 300); 
    ct.setVisible(true); 
    while (true) { 
      try { 
        Thread.sleep(3000); 
      } catch (Exception e) {} 
      ; 
      ct.cycle(); 
    } 
  } 

  public CardTest() { 
    JPanel tab; 
    Container pane = getContentPane(); 
    layout = new CardLayout(); 
    pane.setLayout(layout); 
    tab = new JPanel(); 
    tab.setBackground(Color.red); 
    pane.add(tab, "Red Tab"); 
    tab = new JPanel(); 
    tab.setBackground(Color.green); 
    pane.add(tab, "Green Tab"); 
    tab = new JPanel(); 
    tab.setBackground(Color.blue); 
    pane.add(tab, "Blue Tab"); 
  } 

  public void cycle() { 
    layout.next(this.getContentPane()); 
  } 
  public void displayTab(String name) { 
    layout.show(this.getContentPane(), name); 
  } 
} 

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs