epubjs
Version:
Render ePub documents in the browser, across many devices
43 lines (39 loc) • 6.45 kB
HTML
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>GridLayout</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="GridLayout"><div class="titlepage"><div><div><h1 class="title"><a id="learnjava3-CHP-19-SECT-2"/>GridLayout</h1></div></div></div><p><a id="idx11062" class="indexterm"/> <a id="idx11077" class="indexterm"/> <code class="literal">GridLayout</code> arranges
components into regularly spaced rows and columns. The components are
arbitrarily resized to fit the grid; their minimum and preferred sizes are
consequently ignored. <code class="literal">GridLayout</code> is
most useful for arranging identically sized objects—perhaps a set of <code class="literal">JPanel</code>s, each using a different layout
manager.</p><p><code class="literal">GridLayout</code> takes the number of
rows and columns in its constructor. If you subsequently give it too many
objects to manage, it adds extra columns to make the objects fit. You can
also set the number of rows or columns to <code class="literal">0</code>, which means that you don’t care how many
elements the layout manager packs in that dimension. For example, <code class="literal">GridLayout(2,0)</code> requests a layout with two rows
and an unlimited number of columns; if you put 10 components into this
layout, you’ll get 2 rows of 5 columns each.<sup>[<a id="learnjava3-CHP-19-FN-1" href="#ftn.learnjava3-CHP-19-FN-1" class="footnote">42</a>]</sup></p><p>The following example sets a <code class="literal">GridLayout</code> with three rows and two columns as
its layout manager:</p><a id="I_19_tt1107"/><pre class="programlisting"> <code class="c1">//file: Grid.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">Grid</code> <code class="kd">extends</code> <code class="n">JPanel</code> <code class="o">{</code>
<code class="kd">public</code> <code class="nf">Grid</code><code class="o">()</code> <code class="o">{</code>
<code class="n">setLayout</code><code class="o">(</code><code class="k">new</code> <code class="n">GridLayout</code><code class="o">(</code><code class="mi">3</code><code class="o">,</code> <code class="mi">2</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">"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">"Grid"</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">200</code><code class="o">,</code> <code class="mi">200</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">frame</code><code class="o">.</code><code class="na">setContentPane</code><code class="o">(</code><code class="k">new</code> <code class="n">Grid</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 results are shown in <a class="xref" href="ch19s02.html#learnjava3-CHP-19-FIG-3" title="Figure 19-3. A grid layout">Figure 19-3</a>.</p><div class="figure"><a id="learnjava3-CHP-19-FIG-3"/><div class="figure-contents"><div class="mediaobject"><a id="I_19_tt1108"/><img src="httpatomoreillycomsourceoreillyimages1707680.png.jpg" alt="A grid layout"/></div></div><p class="title">Figure 19-3. A grid layout</p></div><p>The five buttons are laid out in order from left to right, top to
bottom, with one empty spot.<a id="I_indexterm19_id805351" class="indexterm"/><a id="I_indexterm19_id805358" class="indexterm"/></p><div class="footnotes"><br/><hr/><div class="footnote"><p><sup>[<a id="ftn.learnjava3-CHP-19-FN-1" href="#learnjava3-CHP-19-FN-1" class="para">42</a>] </sup>Calling <code class="literal">new GridLayout(0, 0)</code>
causes a runtime exception; either the rows or columns parameter must
be greater than zero.</p></div></div></div></body></html>