?? custedit.html
字號:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Creating a Custom Table Cell Editor 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">
<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="../javax.swing.table/pkg.html">javax.swing.table</A></B><font color="#666666" SIZE="-2">
[62 examples]
</font>
>
<B><A HREF="../javax.swing.table/pkg.html#Editing">Editing</A></B><font color="#666666" SIZE="-2">
[8 examples]
</font>
</DIV><P>
<h3>
e952.
Creating a Custom Table Cell Editor in a JTable Component</h3>
A table cell editor needs to implement the <code>TableCellEditor</code>
interface. This interface supports listeners. The listener code is
conveniently provided by the class <code>AbstractCellEditor</code> so that most
table cell editors extend from this class.
<P> Like a renderer (see <a href="../javax.swing.table/CustRend.html" class="eglink"><font size="-1"><b>e927</b> Creating a Custom Cell Renderer in a JTable Component</font></a>), an
editor returns a component used to edit the value in the cell. For
performance reasons, the editor should not create a new component each
time <code>getTableCellEditorComponent()</code> is called. Rather, it should
return the same component (or one from a set) every time.
<P> The job of <code>getTableCellEditorComponent()</code> is to configure
the component based on the coordinates and value in the cell. The
table then uses the configured component and paints it on the
screen. After painting it, the table no longer needs the component.
<pre>
JTable table = new JTable();
// Add some data
// Install the custom editor on the first column
int vColIndex = <font color="#0066ff"><i>0</i></font>;
TableColumn col = table.getColumnModel().getColumn(vColIndex);
col.setCellEditor(new MyTableCellEditor());
public class MyTableCellEditor extends AbstractCellEditor implements TableCellEditor {
// This is the component that will handle the editing of the
// cell value
JComponent component = new <font color="#0066ff"><i>JTextField()</i></font>;
// This method is called when a cell value is edited by the user.
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int rowIndex, int vColIndex) {
// 'value' is value contained in the cell located at
// (rowIndex, vColIndex)
if (isSelected) {
// cell (and perhaps other cells) are selected
}
// Configure the component with the specified value
<font color="#0066ff"><i>((JTextField)component).setText((String)value);</i></font>
// Return the configured component
return component;
}
// This method is called when editing is completed.
// It must return the new value to be stored in the cell.
public Object getCellEditorValue() {
return ((JTextField)component).getText();
}
}
</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>
e953. <a class="eglink" href="ValidateValue.html?l=rel">
Preventing Invalid Values in a Cell in a JTable Component
</a>
<br>
e954. <a class="eglink" href="CustEditClick.html?l=rel">
Setting the Activation Click Count for a Table Cell Editor in a JTable Component
</a>
<br>
e955. <a class="eglink" href="StopEdit.html?l=rel">
Programmatically Starting and Stopping Cell Editing in a JTable Component
</a>
<br>
e956. <a class="eglink" href="AnchorEdit.html?l=rel">
Creating a Text Field That Mirrors the Value in the Anchor Cell in a JTable Component
</a>
<br>
e957. <a class="eglink" href="NoEdit.html?l=rel">
Disabling User Edits in a JTable Component
</a>
<br>
e958. <a class="eglink" href="ComboBox.html?l=rel">
Using a JComboBox in a Cell in a JTable Component
</a>
<br>
e959. <a class="eglink" href="Spinner.html?l=rel">
Using a List JSpinner as a Cell Editor 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>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Column%20Heads">
Column Heads
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Columns">
Columns
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Events">
Events
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Layout">
Layout
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Rows">
Rows
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Scrolling">
Scrolling
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Selection">
Selection
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Sorting">
Sorting
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Table%20Model">
Table Model
</a>
<a class="eglink" href="/egs/javax.swing.table/pkg.html?l=rel#Tool%20Tips">
Tool Tips
</a>
</td>
</tr>
</table>
<br>
<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
© 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -