⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 headheight.htm

📁 这个压缩包里的都是超级经典的java例子
💻 HTM
字号:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Implementing Variable-Height Column Headers in a JTable Component (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">
<META CONTENT="no-cache" HTTP-EQUIV="Pragma">
<LINK href="/almanac.css" media="screen" type="text/css" rel="stylesheet">
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
</TABLE>
<br>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top">
<h1>The Java Developers Almanac 1.4</h1>
<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">
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD valign="top"><script type="text/javascript">
<!--
google_ad_client = "pub-6001183370374757";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_channel = "4777242811";
google_ad_type = "text_image";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "6666CC";
google_color_url = "6666CC";
google_color_text = "000000";
//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></TD><TD>&nbsp;&nbsp;&nbsp;</TD><TD valign="top">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
    &gt;
    <A HREF="../index.html">List of Packages</A>
    &gt;

    
    <A HREF="../javax.swing.table/pkg.html">javax.swing.table</A><font color="#666666" class="xsmall-font">
        &nbsp;[62 examples]
    </font>
        &gt;
        <B><A HREF="../javax.swing.table/pkg.html#Column Heads">Column Heads</A></B><font color="#666666" class="xsmall-font">
            &nbsp;[6 examples]
            </font>
</DIV><P>
  <h3>e934. Implementing Variable-Height Column Headers in a JTable Component</h3>

The default table header renderer for a table is assumed to render all
column heads with the same preferred height.  If you install a default
header renderer that breaks this assumption, your column heads may not
be rendered correctly.  In particular, the height of the entire header
is made just high enough to satisfy the first column head.  If the
preferred height of any other column head is higher, that column will
not be given enough area to display its contents properly.

<P>
Here is how the height of the header is determined.
Check the first visible column for an installed header renderer.
If one exists, it is used to compute a height.
Otherwise, the default header renderer is used to compute a height.
Now check every other column for a header renderer and
if one exists, use it to compute a height.
The final height is the maximum of all computed heights.

<P> Therefore, if a column other than the first lacks a header
renderer and produces a taller height with the default header
renderer, it will never be computed and so won't be given the correct
height.  The solution to this problem is to assign a header renderer
to the column to ensure that a height is computed for that column,
even if the renderer is identical to the default header renderer.

<P> This example implements a header renderer that can display
either text or an icon, depending on what is set in the column header
value.  Since the height of a column head with an icon depends on the
height of the icon, this icon renderer is set on all columns with
icons.


<pre>    DefaultTableModel model = new DefaultTableModel();
    JTable table = new JTable(model);
    
    // Create 2 columns
    model.addColumn(<font color="#0066ff"><i>"Col1"</i></font>);
    model.addColumn(<font color="#0066ff"><i>"Icon Here"</i></font>);
    // the header value for this column will be overwritten
    // with an Icon object. There is no point supplying the
    // Icon object in the addColumn() call because it will be
    // converted to a string.
    
    // Now set the second column with an Icon as the column header value
    int vColIndex = <font color="#0066ff"><i>1</i></font>;
    table.getColumnModel().getColumn(vColIndex).setHeaderValue(
        new ImageIcon(<font color="#0066ff"><i>"image.gif"</i></font>));
    
    // Finally, set the icon header renderer on the second column
    table.getColumnModel().getColumn(vColIndex)
        .setHeaderRenderer(iconHeaderRenderer);
    
    // Use this renderer for table headers that contain icons
    TableCellRenderer iconHeaderRenderer = new DefaultTableCellRenderer() {
        public Component getTableCellRendererComponent(JTable table, Object value,
                     boolean isSelected, boolean hasFocus, int row, int column) {
            // Inherit the colors and font from the header component
            if (table != null) {
                JTableHeader header = table.getTableHeader();
                if (header != null) {
                    setForeground(header.getForeground());
                    setBackground(header.getBackground());
                    setFont(header.getFont());
                }
            }
    
            if (value instanceof Icon) {
                // Value is an Icon
                setIcon((Icon)value);
                setText("");
            } else {
                // Value is text
                setText((value == null) ? "" : value.toString());
                setIcon(null);
            }
            setBorder(UIManager.getBorder("TableHeader.cellBorder"));
            setHorizontalAlignment(JLabel.CENTER);
            return this;
        }
    };
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
            &nbsp;<b>Related Examples</b></font></td>
</tr>
</table>


e931. <a class="eglink" href="ShowHead.html?l=rel">
    Showing the Table Header in a Non-Scrollable JTable Component
</a>
<br>

e932. <a class="eglink" href="ChangeHeadName.html?l=rel">
    Changing the Name of a Column in a JTable Component
</a>
<br>

e933. <a class="eglink" href="IconHead.html?l=rel">
    Displaying an Icon in a Column Head of a JTable Component
</a>
<br>

e935. <a class="eglink" href="NoHead.html?l=rel">
    Removing the Column Headers from a Scrollable in a JTable Component
</a>
<br>

e936. <a class="eglink" href="CustHeadRend.html?l=rel">
    Creating a Custom Column Header Renderer in a JTable Component
</a>
<br>


<table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td align="left">
<br>
        See also: 
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Cells">
    Cells
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Columns">
    Columns
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Editing">
    Editing
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Events">
    Events
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Layout">
    Layout
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Rows">
    Rows
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Scrolling">
    Scrolling
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Selection">
    Selection
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Sorting">
    Sorting
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Table%20Model">
    Table Model
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Tool%20Tips">
    Tool Tips
</a>&nbsp;&nbsp;

</td>
</tr>
</table>

<br>

<br>
<FONT class="xsmall-font">
&copy; 2002 Addison-Wesley.
</FONT></TD><TD>&nbsp;&nbsp;&nbsp;</TD><TD valign="top"><A href="http://compositesw.com/devzone?ref=javaalmanac"><IMG alt="Click Here" height="600" width="120" border="0" src="/csw_oad_120x600_final.gif"></A></TD>
</TR>
</TABLE>
</BODY>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META CONTENT="NO-CACHE" HTTP-EQUIV="PRAGMA">
</HEAD>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -