Erro seguindo Tutorial

Olá pessoal,
estou seguindo o tutorial que está no seguinte endereço: http://www.guj.com.br/articles/147, e montando a classe principal, me deparei com uma mensagem de erro fornecida pelo eclipse, sublinhando uma instrução. O trecho do código é o seguinte: (já alterado pelo Eclipse)

while(((java.util.Iterator) i).hasNext()){ // Obtem as colunas da linha atual String[] linhaCorrente = i.next(); linha++; // compara o conteudo String da linha atual na coluna desejada // com o valor informado if( linhaCorrente[col].equals(val) ){ getLinhas().remove(linha); // informa a jtable que houve dados deletados passando a // linha removida fireTableRowsDeleted(linha,linha); return true; } }

Vejam que no trecho do código do tutorial (texto original):

[code]while(i.hasNext()){

    }  
} [/code]

houve uma alteração proposta pelo eclipse, e que eu aceitei, que foi o cast inserido dentro da condição do while (segue código alterado pelo eclipse):

[code]
while(((java.util.Iterator) i).hasNext()){

        }  
    }  [/code]

Porém, houve outra situação problemática, que foi no trecho abaixo:

que o Eclipse diz que não pôde fazer o cast de i.next para vetor String.
Tirei o cast mas não encontrei solução.

Alguém poderia me ajudar?

Agradeço,

Obrigado,

Alguém poderia me ajudar? Preciso resolver esse problema até quarta-feira…plz…

E que tipo de variável é i?

Do tipo Iterator.
É isso mesmo?

[quote=airmigjr]Do tipo Iterator.
É isso mesmo?
[/quote]
Não.
Posta a classe inteira e a mensagem de erro.

Segue a classe toda: (O Iterator está no método que está como comentário)

[code]package swing;

import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.AbstractTableModel;
import javax.swing.text.html.HTMLDocument.Iterator;

public class SimpleTableModel extends AbstractTableModel {
//guardar os dados que queremos exibir
private ArrayList linhas = null;
private String [] colunas = null;

public String [] getColunas() {
	return colunas;
	}
public ArrayList getLinhas() {
	return linhas;
	}  
public void setColunas(String[] strings) {
	colunas = strings;
	}  
public void setLinhas(ArrayList list) {
	linhas = list;
	}

/* implementar os métodos que fornecem a JTable os dados suficientes para ela saber montar
a parte visual: o numero de colunas, numero de linhas e os valores para preencher as células /
/
*
* Retorna o numero de colunas no modelo
* @see javax.swing.table.TableModel#getColumnCount()
*/

@Override
public int getColumnCount() {
	// TODO Auto-generated method stub
	/** 
	 * Retorna o numero de linhas existentes no modelo 
	 * @see javax.swing.table.TableModel#getRowCount() 
	 */  
	return getColunas().length;
}

@Override
public int getRowCount() {
	// TODO Auto-generated method stub
	
	/** 
	 * Obtem o valor na linha e coluna 
	 * @see javax.swing.table.TableModel#getValueAt(int, int) 
	 */ 
	return getLinhas().size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
	// TODO Auto-generated method stub
	// Obtem a linha, que é uma String []  
	String [] linha = (String [])getLinhas().get(rowIndex);  
    // Retorna o objeto que esta na coluna  
    return linha[columnIndex];
}

/*//Construtor da classe que irá receber os dados e as colunas que desejamos

public SimpleTableModel(ArrayList dados, String[] colunas){  
    setLinhas(dados);  
    setColunas(colunas);  
}  */

//Construtor da classe que irá receber os dados e as colunas que desejamos e
//Construtor com edição das células

public SimpleTableModel(ArrayList dados, String[] colunas, boolean [] edicao){  
    setLinhas(dados);  
    setColunas(colunas);  
    colsEdicao = edicao;  
}  

//Método que cria a JTable

public JTable createJTable() {  
	  
    ArrayList dados = new ArrayList();  
    String[] colunas = new String[] { "Estado", "Cidade" }; 
    boolean [] edicao = {false, true};
  
    // Alimenta as linhas de dados  
    dados.add(new String[] { "SP", "São Paulo" });  
    dados.add(new String[] { "RJ", "Rio de Janeiro" });  
    dados.add(new String[] { "RN", "Rio Grande do Norte" });  
    dados.add(new String[] { "ES", "Espirito Santo" });  
  
    SimpleTableModel modelo = new SimpleTableModel(dados, colunas, edicao);  
    JTable jtable = new JTable(modelo);  
    jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);  
  
    return jtable;  
  
} 
private boolean [] colsEdicao;  
public boolean isCellEditable(int row, int col){  
    return colsEdicao[col];  
}  

//Método que efetivamente altera o conteúdo da JTable

/** 
 * Seta o valor na linha e coluna 
 * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) 
 */  
public void setValueAt(Object value, int row, int col){  
    // Obtem a linha, que é uma String []  
    String [] linha = (String [])getLinhas().get(row);  
    // Altera o conteudo no indice da coluna passado  
    linha[col] = (String)value;  
    // dispara o evento de celula alterada  
    fireTableCellUpdated(row,col);  
} 

//Método para inserir uma nova linha no modelo:

public void addRow( String [] dadosLinha){  
    getLinhas().add(dadosLinha);  
    // Informa a jtable de que houve linhas incluidas no modelo  
    // COmo adicionamos no final, pegamos o tamanho total do modelo  
    // menos 1 para obter a linha incluida.  
    int linha = getLinhas().size()-1;  
    fireTableRowsInserted(linha,linha);  
    return;  
}  

//Método para exclusão de linhas existentes:

public void removeRow(int row){  
    getLinhas().remove(0);  
    // informa a jtable que houve dados deletados passando a   
    // linha reovida  
    fireTableRowsDeleted(row,row);  
}  
  
  
/** 
 * Remove a linha pelo valor da coluna informada 
 * @param val 
 * @param col 
 * @return 
 */  

/* public boolean removeRow(String val, int col){
// obtem o iterator
Iterator i = (Iterator) getLinhas().iterator();
int linha = 0;
// Faz um looping em cima das linhas
while(((java.util.Iterator) i).hasNext()){
// Obtem as colunas da linha atual
String[] linhaCorrente = (String[])i.next();
linha++;
// compara o conteudo String da linha atual na coluna desejada
// com o valor informado
if( linhaCorrente[col].equals(val) ){
getLinhas().remove(linha);
// informa a jtable que houve dados deletados passando a
// linha removida
fireTableRowsDeleted(linha,linha);
return true;
}
}
// Nao encontrou nada
return false;
} */

// Implementação do getColumnName  
  
/** 
 * Retorna o nome da coluna. 
 * @see javax.swing.table.TableModel#getColumnName(int) 
 */  
public String getColumnName(int col){  
    return getColunas()[col];  
}  

}
[/code]