<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FFlowLayout</id>
		<title>Java Tutorial/Swing/FlowLayout - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FFlowLayout"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/FlowLayout&amp;action=history"/>
		<updated>2026-04-22T01:48:49Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/FlowLayout&amp;diff=4035&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/FlowLayout&amp;diff=4035&amp;oldid=prev"/>
				<updated>2010-06-01T04:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 04:57, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/FlowLayout&amp;diff=4034&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/FlowLayout&amp;diff=4034&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Changing the Gap ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class FlowLayoutChangingGap {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame aWindow = new JFrame(&amp;quot;This is a Flow Layout&amp;quot;);&lt;br /&gt;
    aWindow.setBounds(50,50,500,500);&lt;br /&gt;
    aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    FlowLayout flow = new FlowLayout(FlowLayout.LEFT, 20, 30);&lt;br /&gt;
    Container content = aWindow.getContentPane(); // Get the content pane&lt;br /&gt;
    content.setLayout(flow); // Set the container layout mgr&lt;br /&gt;
    for (int i = 1; i &amp;lt;= 6; i++){&lt;br /&gt;
      content.add(new JButton(&amp;quot;Press &amp;quot; + i)); // Add a Button to content pane&lt;br /&gt;
    }&lt;br /&gt;
    aWindow.setVisible(true); // Display the window&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Demonstrates how to fix common alignment problems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Sun grants you (&amp;quot;Licensee&amp;quot;) a non-exclusive, royalty free, license to use,&lt;br /&gt;
 * modify and redistribute this software in source and binary code form,&lt;br /&gt;
 * provided that i) this copyright notice and license appear on all copies of&lt;br /&gt;
 * the software; and ii) Licensee does not utilize the software in a manner&lt;br /&gt;
 * which is disparaging to Sun.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is provided &amp;quot;AS IS,&amp;quot; without a warranty of any kind. ALL&lt;br /&gt;
 * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY&lt;br /&gt;
 * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR&lt;br /&gt;
 * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE&lt;br /&gt;
 * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING&lt;br /&gt;
 * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS&lt;br /&gt;
 * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,&lt;br /&gt;
 * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER&lt;br /&gt;
 * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF&lt;br /&gt;
 * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE&lt;br /&gt;
 * POSSIBILITY OF SUCH DAMAGES.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is not designed or intended for use in on-line control of&lt;br /&gt;
 * aircraft, air traffic, aircraft navigation or aircraft communications; or in&lt;br /&gt;
 * the design, construction, operation or maintenance of any nuclear&lt;br /&gt;
 * facility. Licensee represents and warrants that it will not use or&lt;br /&gt;
 * redistribute the Software for such purposes.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import javax.swing.AbstractButton;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.BoxLayout;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JTabbedPane;&lt;br /&gt;
import javax.swing.border.LineBorder;&lt;br /&gt;
import javax.swing.border.TitledBorder;&lt;br /&gt;
public class BoxAlignmentDemo extends JPanel {&lt;br /&gt;
  public BoxAlignmentDemo() {&lt;br /&gt;
    super(new BorderLayout());&lt;br /&gt;
    JTabbedPane tabbedPane = new JTabbedPane();&lt;br /&gt;
    JPanel buttonRow = new JPanel();&lt;br /&gt;
    // Use default FlowLayout.&lt;br /&gt;
    buttonRow.add(createButtonRow(false));&lt;br /&gt;
    buttonRow.add(createButtonRow(true));&lt;br /&gt;
    tabbedPane.addTab(&amp;quot;Altering alignments&amp;quot;, buttonRow);&lt;br /&gt;
    JPanel labelAndComponent = new JPanel();&lt;br /&gt;
    // Use default FlowLayout.&lt;br /&gt;
    labelAndComponent.add(createLabelAndComponent(false));&lt;br /&gt;
    labelAndComponent.add(createLabelAndComponent(true));&lt;br /&gt;
    tabbedPane.addTab(&amp;quot;X alignment mismatch&amp;quot;, labelAndComponent);&lt;br /&gt;
    JPanel buttonAndComponent = new JPanel();&lt;br /&gt;
    // Use default FlowLayout.&lt;br /&gt;
    buttonAndComponent.add(createYAlignmentExample(false));&lt;br /&gt;
    buttonAndComponent.add(createYAlignmentExample(true));&lt;br /&gt;
    tabbedPane.addTab(&amp;quot;Y alignment mismatch&amp;quot;, buttonAndComponent);&lt;br /&gt;
    // Add tabbedPane to this panel.&lt;br /&gt;
    add(tabbedPane, BorderLayout.CENTER);&lt;br /&gt;
  }&lt;br /&gt;
  protected JPanel createButtonRow(boolean changeAlignment) {&lt;br /&gt;
    JButton button1 = new JButton(&amp;quot;A JButton&amp;quot;, createImageIcon(&amp;quot;images/middle.gif&amp;quot;));&lt;br /&gt;
    button1.setVerticalTextPosition(AbstractButton.BOTTOM);&lt;br /&gt;
    button1.setHorizontalTextPosition(AbstractButton.CENTER);&lt;br /&gt;
    JButton button2 = new JButton(&amp;quot;Another JButton&amp;quot;, createImageIcon(&amp;quot;images/geek-cght.gif&amp;quot;));&lt;br /&gt;
    button2.setVerticalTextPosition(AbstractButton.BOTTOM);&lt;br /&gt;
    button2.setHorizontalTextPosition(AbstractButton.CENTER);&lt;br /&gt;
    String title;&lt;br /&gt;
    if (changeAlignment) {&lt;br /&gt;
      title = &amp;quot;Desired&amp;quot;;&lt;br /&gt;
      button1.setAlignmentY(BOTTOM_ALIGNMENT);&lt;br /&gt;
      button2.setAlignmentY(BOTTOM_ALIGNMENT);&lt;br /&gt;
    } else {&lt;br /&gt;
      title = &amp;quot;Default&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    JPanel pane = new JPanel();&lt;br /&gt;
    pane.setBorder(BorderFactory.createTitledBorder(title));&lt;br /&gt;
    pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));&lt;br /&gt;
    pane.add(button1);&lt;br /&gt;
    pane.add(button2);&lt;br /&gt;
    return pane;&lt;br /&gt;
  }&lt;br /&gt;
  protected JPanel createLabelAndComponent(boolean doItRight) {&lt;br /&gt;
    JPanel pane = new JPanel();&lt;br /&gt;
    JComponent component = new JPanel();&lt;br /&gt;
    Dimension size = new Dimension(150, 100);&lt;br /&gt;
    component.setMaximumSize(size);&lt;br /&gt;
    component.setPreferredSize(size);&lt;br /&gt;
    component.setMinimumSize(size);&lt;br /&gt;
    TitledBorder border = new TitledBorder(new LineBorder(Color.black), &amp;quot;A JPanel&amp;quot;,&lt;br /&gt;
        TitledBorder.CENTER, TitledBorder.BELOW_TOP);&lt;br /&gt;
    border.setTitleColor(Color.black);&lt;br /&gt;
    component.setBorder(border);&lt;br /&gt;
    JLabel label = new JLabel(&amp;quot;This is a JLabel&amp;quot;);&lt;br /&gt;
    String title;&lt;br /&gt;
    if (doItRight) {&lt;br /&gt;
      title = &amp;quot;Matched&amp;quot;;&lt;br /&gt;
      label.setAlignmentX(CENTER_ALIGNMENT);&lt;br /&gt;
    } else {&lt;br /&gt;
      title = &amp;quot;Mismatched&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    pane.setBorder(BorderFactory.createTitledBorder(title));&lt;br /&gt;
    pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));&lt;br /&gt;
    pane.add(label);&lt;br /&gt;
    pane.add(component);&lt;br /&gt;
    return pane;&lt;br /&gt;
  }&lt;br /&gt;
  protected JPanel createYAlignmentExample(boolean doItRight) {&lt;br /&gt;
    JPanel pane = new JPanel();&lt;br /&gt;
    String title;&lt;br /&gt;
    JComponent component1 = new JPanel();&lt;br /&gt;
    Dimension size = new Dimension(100, 50);&lt;br /&gt;
    component1.setMaximumSize(size);&lt;br /&gt;
    component1.setPreferredSize(size);&lt;br /&gt;
    component1.setMinimumSize(size);&lt;br /&gt;
    TitledBorder border = new TitledBorder(new LineBorder(Color.black), &amp;quot;A JPanel&amp;quot;,&lt;br /&gt;
        TitledBorder.CENTER, TitledBorder.BELOW_TOP);&lt;br /&gt;
    border.setTitleColor(Color.black);&lt;br /&gt;
    component1.setBorder(border);&lt;br /&gt;
    JComponent component2 = new JPanel();&lt;br /&gt;
    size = new Dimension(100, 50);&lt;br /&gt;
    component2.setMaximumSize(size);&lt;br /&gt;
    component2.setPreferredSize(size);&lt;br /&gt;
    component2.setMinimumSize(size);&lt;br /&gt;
    border = new TitledBorder(new LineBorder(Color.black), &amp;quot;A JPanel&amp;quot;, TitledBorder.CENTER,&lt;br /&gt;
        TitledBorder.BELOW_TOP);&lt;br /&gt;
    border.setTitleColor(Color.black);&lt;br /&gt;
    component2.setBorder(border);&lt;br /&gt;
    if (doItRight) {&lt;br /&gt;
      title = &amp;quot;Matched&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
      component1.setAlignmentY(TOP_ALIGNMENT);&lt;br /&gt;
      title = &amp;quot;Mismatched&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    pane.setBorder(BorderFactory.createTitledBorder(title));&lt;br /&gt;
    pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));&lt;br /&gt;
    pane.add(component1);&lt;br /&gt;
    pane.add(component2);&lt;br /&gt;
    return pane;&lt;br /&gt;
  }&lt;br /&gt;
  /** Returns an ImageIcon, or null if the path was invalid. */&lt;br /&gt;
  protected static ImageIcon createImageIcon(String path) {&lt;br /&gt;
    java.net.URL imgURL = BoxAlignmentDemo.class.getResource(path);&lt;br /&gt;
    if (imgURL != null) {&lt;br /&gt;
      return new ImageIcon(imgURL);&lt;br /&gt;
    } else {&lt;br /&gt;
      System.err.println(&amp;quot;Couldn&amp;quot;t find file: &amp;quot; + path);&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Create the GUI and show it. For thread safety, this method should be&lt;br /&gt;
   * invoked from the event-dispatching thread.&lt;br /&gt;
   */&lt;br /&gt;
  private static void createAndShowGUI() {&lt;br /&gt;
    // Create and set up the window.&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;BoxAlignmentDemo&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    // Create and set up the content pane.&lt;br /&gt;
    BoxAlignmentDemo newContentPane = new BoxAlignmentDemo();&lt;br /&gt;
    newContentPane.setOpaque(true); // content panes must be opaque&lt;br /&gt;
    frame.setContentPane(newContentPane);&lt;br /&gt;
    // Display the window.&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // Schedule a job for the event-dispatching thread:&lt;br /&gt;
    // creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
    javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        createAndShowGUI();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  FlowLayout Behavior ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
public class FlowLayoutBehaviour extends JFrame {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    FlowLayoutBehaviour ft = new FlowLayoutBehaviour();&lt;br /&gt;
    ft.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    ft.setSize(400, 300);&lt;br /&gt;
    ft.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public FlowLayoutBehaviour() {&lt;br /&gt;
    super();&lt;br /&gt;
    Container pane = getContentPane();&lt;br /&gt;
    pane.setLayout(new FlowLayout(FlowLayout.LEFT));&lt;br /&gt;
    pane.add(new JLabel(&amp;quot;This is a test&amp;quot;));&lt;br /&gt;
    pane.add(new JButton(&amp;quot;of a FlowLayout&amp;quot;));&lt;br /&gt;
    pane.add(new JTextField(30));&lt;br /&gt;
    pane.add(new JTextArea(&amp;quot;This is a JTextArea&amp;quot;, 3, 10));&lt;br /&gt;
    pane.add(new JLabel(&amp;quot;This is a FlowLayout test with a long string&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  FlowLayout: the default layout manager for a JPanel. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;A FlowLayout adds components to the container in rows.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;When it can&amp;quot;t fit more components in a row, it starts a new row.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Components within a FlowLayout-managed container are given their preferred size.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;If there is insufficient space, you do not see all the components.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are three constructors for creating the FlowLayout layout manager:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public FlowLayout()&lt;br /&gt;
public FlowLayout(int alignment)&lt;br /&gt;
public FlowLayout(int alignment, int hgap, int vgap)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Laying Out Components in a Flow (Left-to-Right, Top-to-Bottom) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component1 = new JButton();&lt;br /&gt;
    JButton component2 = new JButton();&lt;br /&gt;
    int align = FlowLayout.CENTER; // or LEFT, RIGHT&lt;br /&gt;
    JPanel panel = new JPanel(new FlowLayout(align));&lt;br /&gt;
    panel.add(component1);&lt;br /&gt;
    panel.add(component2);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Layout manager ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;That layout manager is responsible for positioning components, regardless of the platform or screen size.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To find out how much space a component needs, the layout manager calls the &lt;br /&gt;
component&amp;quot;s getMinimumSize(), getPreferredSize(), and getMaximumSize() methods.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The AWT layout managers are&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;FlowLayout,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;BorderLayout,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;GridLayout,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;CardLayout, and&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;GridBagLayout.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Swing layouts are&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;BoxLayout,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;OverlayLayout,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;ScrollPaneLayout,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;ViewportLayout, and&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;SpringLayout.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setting the gaps between components and rows explicitly by calling the setHgap() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class FlowLayoutSettingGaps {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame aWindow = new JFrame(&amp;quot;This is a Flow Layout&amp;quot;);&lt;br /&gt;
    aWindow.setBounds(30, 30, 300, 300); // Size&lt;br /&gt;
    aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    FlowLayout flow = new FlowLayout(); // Create a layout manager&lt;br /&gt;
    flow.setHgap(35);                   // Set the horizontal gap&lt;br /&gt;
    Container content = aWindow.getContentPane(); // Get the content pane&lt;br /&gt;
    content.setLayout(flow); // Set the container layout mgr&lt;br /&gt;
    // Now add six button components&lt;br /&gt;
    for (int i = 1; i &amp;lt;= 6; i++) {&lt;br /&gt;
      content.add(new JButton(&amp;quot;Press &amp;quot; + i)); // Add a Button to content pane&lt;br /&gt;
    }&lt;br /&gt;
    aWindow.setVisible(true); // Display the window&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Three constructors available for the FlowLayout manager. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
public class FlowLayoutExample {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JPanel panel = new JPanel();&lt;br /&gt;
    JTextArea area = new JTextArea(&amp;quot;text area&amp;quot;);&lt;br /&gt;
    area.setPreferredSize(new Dimension(100, 100));&lt;br /&gt;
    JButton button = new JButton(&amp;quot;button&amp;quot;);&lt;br /&gt;
    panel.add(button);&lt;br /&gt;
&lt;br /&gt;
    panel.add(new JScrollPane(area));&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(panel);&lt;br /&gt;
    f.pack();&lt;br /&gt;
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use FlowLayout to hold checkBox, Label and TextField ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Button;&lt;br /&gt;
import java.awt.Checkbox;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.Frame;&lt;br /&gt;
import java.awt.Label;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.TextField;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Frame f = new Frame(&amp;quot;FlowLayout demo&amp;quot;);&lt;br /&gt;
    f.setLayout(new FlowLayout());&lt;br /&gt;
    f.add(new Button(&amp;quot;Red&amp;quot;));&lt;br /&gt;
    f.add(new Button(&amp;quot;Blue&amp;quot;));&lt;br /&gt;
    f.add(new Button(&amp;quot;White&amp;quot;));&lt;br /&gt;
    List list = new List();&lt;br /&gt;
    for (int i = 0; i &amp;lt; args.length; i++) {&lt;br /&gt;
      list.add(args[i]);&lt;br /&gt;
    }&lt;br /&gt;
    f.add(list);&lt;br /&gt;
    f.add(new Checkbox(&amp;quot;Pick me&amp;quot;, true));&lt;br /&gt;
    f.add(new Label(&amp;quot;Enter name here:&amp;quot;));&lt;br /&gt;
    f.add(new TextField(20));&lt;br /&gt;
    f.pack();&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using FlowLayout ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
public class FlowLayoutTest {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;FlowLayout Test&amp;quot;);&lt;br /&gt;
    frame.setLayout(new FlowLayout());&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    String text = &amp;quot;A JTextArea object represents&amp;quot; + &amp;quot;a multiline area for displaying text.&amp;quot;&lt;br /&gt;
        + &amp;quot;You can change the number of lines&amp;quot; + &amp;quot;that can be displayed at a time.&amp;quot;;&lt;br /&gt;
    JTextArea textArea1 = new JTextArea(text, 5, 10);&lt;br /&gt;
    textArea1.setPreferredSize(new Dimension(100, 100));&lt;br /&gt;
    JTextArea textArea2 = new JTextArea(text, 5, 10);&lt;br /&gt;
    textArea2.setPreferredSize(new Dimension(100, 100));&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(textArea2, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,&lt;br /&gt;
        JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);&lt;br /&gt;
    textArea1.setLineWrap(true);&lt;br /&gt;
    textArea2.setLineWrap(true);&lt;br /&gt;
    frame.add(textArea1);&lt;br /&gt;
    frame.add(scrollPane);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>