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.

 Internet.com eBook Library
 IBM Software Construction Toolbox
 Microsoft RIA Development Center
 Destination .NET
XML error: not well-formed (invalid token) at line 38
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%.

Mozilla's Ubquity Mashup: For The Masses?
iPhone Users Just Want to Have Fun
Oops! I Fixed the Linux Kernel
Jim Zemlin: The New Center of Linux Gravity
Microsoft's Novell Investment Tops $340M
Fedora 10 Takes Shape
IBM Gives a Mobile Voice to Developers
Inadequate Tools Send Software Down the Drain
USB 3.0 One Step Closer to Reality
Would-Be Linux Contributors May Get a Leg Up

Develop a Mobile RSS Feed the Easy Way
State of the Semantic Web: Know Where to Look
A 3D Exploration of the HTML Canvas Element
Setting Up and Running Subversion and Tortoise SVN with Visual Studio and .NET
Java/JRuby Developers, Say Open 'Sesame' to the Semantic Web
Interpreting Images with MRDS Services
DevXtra Editors' Blog: Executives Avoiding Cloud Computing in Droves
Q&A with James Reinders on the Intel Parallel Studio Beta Program
The Pros and Cons of Outsourcing Enterprise Emails
Hosting Options: Shared or Dedicated Server

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



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers