epubjs
Version:
Render ePub documents in the browser, across many devices
37 lines (32 loc) • 5.84 kB
HTML
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>FlowLayout</title><link rel="stylesheet" href="core.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"/></head><body><div class="sect1" title="FlowLayout"><div class="titlepage"><div><div><h1 class="title"><a id="learnjava3-CHP-19-SECT-1"/>FlowLayout</h1></div></div></div><p><a id="idx11050" class="indexterm"/> <a id="idx11067" class="indexterm"/> <code class="literal">FlowLayout</code> is a simple
layout manager that tries to arrange components at their preferred sizes,
from left to right and top to bottom in the container. A <code class="literal">FlowLayout</code> can have a specified row
justification of <a id="I_indexterm19_id805089" class="indexterm"/><code class="literal">LEFT</code>, <a id="I_indexterm19_id805099" class="indexterm"/><code class="literal">CENTER</code>, or <a id="I_indexterm19_id805112" class="indexterm"/><code class="literal">RIGHT</code> and a fixed
horizontal and vertical padding. By default, a flow layout uses <code class="literal">CENTER</code> justification, meaning that all
components are centered within the area allotted to them. <code class="literal">FlowLayout</code> is the default for <code class="literal">JPanel</code>s.</p><p>The following example adds five buttons to the content pane of a
<code class="literal">JFrame</code> using the default <code class="literal">FlowLayout</code>:</p><a id="I_19_tt1105"/><pre class="programlisting"> <code class="c1">//file: Flow.java</code>
<code class="kn">import</code> <code class="nn">java.awt.*</code><code class="o">;</code>
<code class="kn">import</code> <code class="nn">java.awt.event.*</code><code class="o">;</code>
<code class="kn">import</code> <code class="nn">javax.swing.*</code><code class="o">;</code>
<code class="kd">public</code> <code class="kd">class</code> <code class="nc">Flow</code> <code class="kd">extends</code> <code class="n">JPanel</code> <code class="o">{</code>
<code class="kd">public</code> <code class="nf">Flow</code><code class="o">()</code> <code class="o">{</code>
<code class="c1">// FlowLayout is default layout manager for a JPanel</code>
<code class="n">add</code><code class="o">(</code><code class="k">new</code> <code class="n">JButton</code><code class="o">(</code><code class="s">"One"</code><code class="o">));</code>
<code class="n">add</code><code class="o">(</code><code class="k">new</code> <code class="n">JButton</code><code class="o">(</code><code class="s">"Two"</code><code class="o">));</code>
<code class="n">add</code><code class="o">(</code><code class="k">new</code> <code class="n">JButton</code><code class="o">(</code><code class="s">"Three"</code><code class="o">));</code>
<code class="n">add</code><code class="o">(</code><code class="k">new</code> <code class="n">JButton</code><code class="o">(</code><code class="s">"Four"</code><code class="o">));</code>
<code class="n">add</code><code class="o">(</code><code class="k">new</code> <code class="n">JButton</code><code class="o">(</code><code class="s">"Five"</code><code class="o">));</code>
<code class="o">}</code>
<code class="kd">public</code> <code class="kd">static</code> <code class="kt">void</code> <code class="nf">main</code><code class="o">(</code><code class="n">String</code><code class="o">[]</code> <code class="n">args</code><code class="o">)</code> <code class="o">{</code>
<code class="n">JFrame</code> <code class="n">frame</code> <code class="o">=</code> <code class="k">new</code> <code class="n">JFrame</code><code class="o">(</code><code class="s">"Flow"</code><code class="o">);</code>
<code class="n">frame</code><code class="o">.</code><code class="na">setDefaultCloseOperation</code><code class="o">(</code> <code class="n">JFrame</code><code class="o">.</code><code class="na">EXIT_ON_CLOSE</code> <code class="o">);</code>
<code class="n">frame</code><code class="o">.</code><code class="na">setSize</code><code class="o">(</code><code class="mi">400</code><code class="o">,</code> <code class="mi">75</code><code class="o">);</code>
<code class="n">frame</code><code class="o">.</code><code class="na">setLocation</code><code class="o">(</code><code class="mi">200</code><code class="o">,</code> <code class="mi">200</code><code class="o">);</code>
<code class="n">Flow</code> <code class="n">flow</code> <code class="o">=</code> <code class="k">new</code> <code class="n">Flow</code><code class="o">();</code>
<code class="n">frame</code><code class="o">.</code><code class="na">setContentPane</code><code class="o">(</code><code class="n">flow</code><code class="o">);</code>
<code class="n">frame</code><code class="o">.</code><code class="na">setVisible</code><code class="o">(</code><code class="kc">true</code><code class="o">);</code>
<code class="o">}</code>
<code class="o">}</code></pre><p>The result is shown in <a class="xref" href="ch19s01.html#learnjava3-CHP-19-FIG-2" title="Figure 19-2. A flow layout">Figure 19-2</a>.</p><div class="figure"><a id="learnjava3-CHP-19-FIG-2"/><div class="figure-contents"><div class="mediaobject"><a id="I_19_tt1106"/><img src="httpatomoreillycomsourceoreillyimages1707679.png.jpg" alt="A flow layout"/></div></div><p class="title">Figure 19-2. A flow layout</p></div><p>Try resizing the window. If it is made narrow enough, some of the
buttons will spill over to a second or third row.<a id="I_indexterm19_id805197" class="indexterm"/><a id="I_indexterm19_id805204" class="indexterm"/></p></div></body></html>