abstracttablemodel.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 121 行

JAVA
121
字号
/* class AbstractTableModel
 *
 * Copyright (C) 2001  R M Pitman
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package charvax.swing.table;

import java.util.Enumeration;
import java.util.Vector;

import charvax.swing.event.TableModelEvent;
import charvax.swing.event.TableModelListener;

/**
 * This abstract class provides default implementations for most of the methods
 * in the TableModel class. It takes care of the management of listeners, and
 * provides some convenience methods for generating TableModeEvents and
 * dispatching them to the listeners. To implement a concrete TableModel as a
 * subclass of AbstractTableModel, you only need to provide implementations of
 * the following methods:<pre>
    public int getRowCount();
    public int getColumnCount();
    public Object getValueAt(int row, int column);
</pre>
 */
public abstract class AbstractTableModel
    implements TableModel
{
    /** Adds a listener that will be notified each time the data model 
     * changes.
     */
    public void addTableModelListener(TableModelListener l) {
	_listeners.add(l);
    }

    /** Removes the specified listener from the list of listeners.
     */
    public void removeTableModelListener(TableModelListener l) {
	_listeners.remove(l);
    }

    /** Returns a default name for the column using spreadsheet conventions: A,
     * B, C... 
     */
    public String getColumnName(int column_) {
	StringBuffer buf = new StringBuffer('A' + column_);
	return buf.toString();
    }

    /** This empty implementation is provided so that users don't have to
     * provide their own implementation if their table is not editable.
     */
    public void setValueAt(Object value_, int row_, int column_) {}

    /** Forwards the specified event to all TableModelListeners that 
     * registered themselves as listeners for this TableModel.
     */
    public void fireTableChanged(TableModelEvent evt_) {
	Enumeration e = _listeners.elements();
	while (e.hasMoreElements()) {
	    TableModelListener l = (TableModelListener) e.nextElement();
	    l.tableChanged(evt_);
	}
    }

    /** Notifies all listeners that the value at [row, column] has been
     * updated.
     */
    public void fireTableCellUpdated(int row_, int column_) {
	TableModelEvent evt = new TableModelEvent(this, row_, row_, column_);
	fireTableChanged(evt);
    }

    /** Notifies all listeners that all cell values in the table may have
     * changed.
     */
    public void fireTableDataChanged() {
	TableModelEvent evt = new TableModelEvent(
	    this, 0, this.getRowCount()-1, TableModelEvent.ALL_COLUMNS);
	fireTableChanged(evt);
    }

    /** Notifies all listeners that rows in the range [firstRow_, lastRow_],
     * inclusive, have been deleted.
     */
    public void fireTableRowsDeleted(int firstRow_, int lastRow_) {
	TableModelEvent evt = new TableModelEvent(
	    this, firstRow_, lastRow_, TableModelEvent.ALL_COLUMNS,
	    TableModelEvent.DELETE);
	fireTableChanged(evt);
    }

    /** Notifies all listeners that rows in the range [firstRow_, lastRow_],
     * inclusive, have been inserted.
     */
    public void fireTableRowsInserted(int firstRow_, int lastRow_) {
	TableModelEvent evt = new TableModelEvent(
	    this, firstRow_, lastRow_, TableModelEvent.ALL_COLUMNS,
	    TableModelEvent.INSERT);
	fireTableChanged(evt);
    }

    //====================================================================
    // INSTANCE VARIABLES
    private Vector _listeners = new Vector();
}

⌨️ 快捷键说明

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