?? gridbag_stretch.html
字號:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Setting the Stretchyness of Rows and Columns in a GridBagLayout Using Layout Weights
(Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<STYLE TYPE="text/css">
<!-- BODY CODE {font-family: Courier, Monospace; font-size: 11pt} TABLE, BODY {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt} PRE {font-family: Courier, Monospace; font-size: 10pt} H3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11pt} A.eglink {text-decoration: none} A:hover.eglink {text-decoration: underline} -->
</STYLE>
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top"><font face="Times" size="6"><b>The Java Developers Almanac 1.4</b></font>
<br>
Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
</TD>
</TR>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
>
<A HREF="../index.html">List of Packages</A>
>
<B><A HREF="../java.awt/pkg.html">java.awt</A></B><font color="#666666" SIZE="-2">
[77 examples]
</font>
>
<B><A HREF="../java.awt/pkg.html#GridBagLayout">GridBagLayout</A></B><font color="#666666" SIZE="-2">
[12 examples]
</font>
</DIV><P>
<h3>
e630.
Setting the Stretchyness of Rows and Columns in a GridBagLayout Using Layout Weights</h3>
Column and row stretchyness is controlled by the <font color="#0066ff"><i>weight</i></font> of specific
columns and rows. A column with zero weight does not stretch; it is
given just enough space to accommodate the component with the widest
preferred width in that column; this also applies to a row with zero weight.
<P> When a single column has a non-zero weight, it is
given all the excess horizontal space; it is the only column that
stretches. In this case, the value of the weight doesn't matter
<P> When more than one column has a non-zero weight, the excess
space is distributed among the non-zero weight columns using the
weight values. In particular, if the excess space is <font color="#0066ff"><i>P</i></font> pixels, and
the column weights for column^i is weight^i, then column^i gets
exactly (weight^i * <font color="#0066ff"><i>P</i></font>) / (sum-of-all-column-weights). For example, if
column 1 has weight 1 and column 2 has weight 2 and the excess space
is 90 pixels, column 1 will get 30 extra pixels and column 2 will get
60 extra pixels. Rows with a non-zero <font color="#0066ff"><i>weight</i></font> behave in similar
fashion.
<P> There are two ways to set the weight of a column or row. The
first is to set the weights using the <code>GridBagLayout</code> object. The
second way is to assign weights to components. The weight of a column
is determined by the maximum of all the weights of all components in
that column including the assigned weight of the column in the
<code>GridBagLayout</code> object. So, if the maximum
weight of all the components in the column is 2 and the weight for
that column in the <code>GridBagLayout</code> object is 3, the column weight is 3.
The weight of a row is determined in similar fashion.
<P> Typically, weights are set using either method, not
both. In particular, if only one row or column needs to be stretchy,
it is usually more convenient to assign a non-zero weight to the
stretchy component. Then the right thing happens. Whereas, if two or more
columns or rows are stretchy and the weights are not the same, it is
sometimes more convenient to set the weights in the <code>GridBadLayout</code>
object.
<P> This example demonstrates how to assign weights in the
<code>GridBagLayout</code> object. See <a href="../java.awt/gridbag_StretchComp.html" class="eglink"><font size="-1"><b>e631</b> Setting the Stretchyness of Columns and Rows in a GridBagLayout Using Component Weights</font></a>
for an example of how to set weights on a component.
<P> See <a href="../java.awt/gridbag_Using.html" class="eglink"><font size="-1"><b>e626</b> Creating a GridBagLayout</font></a> for an example on how to
use a gridbag layout with gridbag constraints.
<pre>
GridBagLayout gbl = new GridBagLayout();
// We assume that the grid has 2 rows and 3 columns.
// The 1st column and row do not stretch.
// The 2nd column gets 1/3 of the excess horizontal space.
// The 3rd column gets 2/3 of the excess horizontal space.
// The 2nd row gets all of the excess vertical space.
gbl.columnWeights = new double[]{0.0f, 1.0f, 2.0f};
gbl.rowWeights = new double[]{0.0f, 1.0f};
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
Related Examples
</font></td>
</tr>
</table>
e626. <a class="eglink" href="gridbag_Using.html?l=rel">
Creating a GridBagLayout
</a>
<br>
e627. <a class="eglink" href="gridbag_Pos.html?l=rel">
Setting the Location of a Component in a GridBagLayout
</a>
<br>
e628. <a class="eglink" href="gridbag_GetDim.html?l=rel">
Getting the Number of Rows and Columns of Cells in a GridBagLayout
</a>
<br>
e629. <a class="eglink" href="gridbag_StretchAll.html?l=rel">
Making a GridBagLayout Fill the Container
</a>
<br>
e631. <a class="eglink" href="gridbag_StretchComp.html?l=rel">
Setting the Stretchyness of Columns and Rows in a GridBagLayout Using Component Weights
</a>
<br>
e632. <a class="eglink" href="gridbag_Fill.html?l=rel">
Setting the Stretchyness of a Component Within the Cell of a GridBagLayout Using Fill
</a>
<br>
e633. <a class="eglink" href="gridbag_Anchor.html?l=rel">
Setting the Location of a Component Within the Cell of a GridBagLayout Using Anchors
</a>
<br>
e634. <a class="eglink" href="gridbag_Inset.html?l=rel">
Setting the Space around a Component Within the Cell of the GridBagLayout Using Insets
</a>
<br>
e635. <a class="eglink" href="gridbag_Ipad.html?l=rel">
Adjusting the Size of a Component in a GridBadLayout Using Internal Padding
</a>
<br>
e636. <a class="eglink" href="gridbag_Max.html?l=rel">
Setting a Row or Column of a GridBadLayout to a Particular Size
</a>
<br>
e637. <a class="eglink" href="gridbag_Gap.html?l=rel">
Setting Gap Sizes in a GridBadLayout
</a>
<br>
<table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td align="left">
<br>
See also:
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Colors">
Colors
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Components">
Components
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Containers">
Containers
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Cursors">
Cursors
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Drawing">
Drawing
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Events">
Events
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Focus">
Focus
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Frames">
Frames
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Images">
Images
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Shapes">
Shapes
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Simulating%20Events">
Simulating Events
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#Text">
Text
</a>
<a class="eglink" href="/egs/java.awt/pkg.html?l=rel#The%20Screen">
The Screen
</a>
</td>
</tr>
</table>
<br>
<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
© 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -