UNPKG

epubjs

Version:

Render ePub documents in the browser, across many devices

43 lines (39 loc) 6.45 kB
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <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>