friendstablemodel.java

来自「java聊天室服务器」· Java 代码 · 共 94 行

JAVA
94
字号
package XXRoom;

import javax.swing.table.*;
import java.util.List;
import java.util.ArrayList;

class FriendsTableModel extends AbstractTableModel
{
	private List columnNames = new ArrayList();
	private List data = new ArrayList();
	
	public FriendsTableModel() {
		super();
		columnNames.add( "Name" );		
	}

	public int getColumnCount() {
		return columnNames.size();
	}

	public int getRowCount() {
		return data.size();
	}

	public String getColumnName( int col ) {		
		return (String)columnNames.get( col );
	}

	public Object getValueAt( int row, int col ) {
		return ( (List)data.get( row ) ).get( col );
	}

	public Class getColumnClass( int c ) {
//		return getValueAt( 0, c ).getClass();		
		return String.class;
	}

	public boolean isCellEditable( int row, int col ) {
		return false;
	}

	public void setValueAt( Object value, int row, int col ) {
		( (List)data.get( row ) ).set( col, value );
	}
	
	public void printDebugData() {
		for( int i = 0; i < data.size(); i ++ ) {
			for( int j = 0; j < ((List)data.get( i )).size(); j ++ ) {
				System.out.println( ((List)data.get( i )).get( j ) );
			}
		}
	}

	public boolean isFriendExsit( String name ) {
		for( int i = 0; i < data.size(); i ++ ) {
			List l = (List)data.get( i );
			if( l.get( 0 ).equals( name ) )
				return true;
		}
		return false;
	}

	public void addFriend( String name )	{
		List l = new ArrayList();
		l.add( name );
		
		//增加信息
		data.add( l );		
	}

	public void removeFriend( String name ) {
		try
		{
			for( int i = 0; i < data.size(); i ++ ) {
				List l = (List)data.get( i );
				if( l.get( 0 ).equals( name ) ) {
					data.remove( i );
					break;
				}
			}
		}
		catch ( ArrayIndexOutOfBoundsException e )
		{
			e.printStackTrace();
		}
	}	
	
	public void clear() {
		for( int i = 0; i < data.size(); i ++ ) {
			((List)data.get( i )).clear();
		}
		data.clear();
	}
}

⌨️ 快捷键说明

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