Java Reference
In-Depth Information
To do this, you would put the two components in a panel and then place the panel in
the BorderLayout.SOUTH position.
You can give different layout managers to a JFrame and to each panel in the JFrame .
Because you can add panels to other panels and each panel can have its own layout
manager, this enables you to produce almost any kind of overall layout of the items in
your GUI.
For example, if you want to place two buttons at the bottom of your JFrame GUI,
you might add the following to the constructor of your JFrame GUI:
setLayout( new BorderLayout());
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout( new FlowLayout());
JButton firstButton = new JButton("One");
buttonPanel.add(firstButton);
JButton secondButton = new JButton("Two");
buttonPanel.add(secondButton);
add(buttonPanel, BorderLayout.SOUTH);
The next Programming Example makes use of panels within panels.
EXAMPLE: A Tricolor Built with Panels
When first run, the GUI defined in Display 17.11 looks as shown in the first view. The
entire background is light gray, and there are three buttons at the bottom of the GUI
labeled "Green" , "White" , and "Gray" . If you click any one of the buttons, a vertical
stripe with the color written on the button appears. You can click the buttons in any
order. In the last three views in Display 17.11 we show what happens if you click the
buttons in left-to-right order.
The green, white, and gray stripes are the JPanel s named greenPanel , whitePanel ,
and grayPanel . At first the panels are not visible because they are all light gray, so no
borders are visible. When you click a button, the corresponding panel changes color
and so is clearly visible.
Notice how the action listeners are set up. Each button registers the this parameter
as a listener, as in the following line:
redButton.addActionListener( this );
Because this line appears inside of the constructor for the class PanelDemo , the this
parameter refers to PanelDemo , which is the entire GUI. Thus, the entire JFrame (the
entire GUI) is the listener, not the JPanel . So when you click one of the buttons, it is
the actionPerformed method in PanelDemo that is executed.
Search WWH ::




Custom Search