Mostrar dados na JTable?

2 respostas
S

ola pessoal, tenho um cogido que mostra os dados que eu quero em um JOptionPane…

public  void informaTakeUp()
    {        
       try{
                 if (mostra_data.mes.equals("Março"))
                 {
                     con_agenda.executeSQL("select * from AgendaShip where Jan IS NOT NULL and TkJan IS Null");
                       
                     while (con_agenda.resultset.next()){
                       
                               JOptionPane.showMessageDialog(null, "O contrato eh o "+con_agenda.resultset.getString("Contrato")); 
                                  //Este é JOptionPane que quero substituir por uma JTable!!!!!!!!
                      }
                 }
          }
      catch(Exception o){
            JOptionPane.showMessageDialog(null, "erro"+o);
          }
 }

Ele esta mostrando os resultados em JOptionPane seguidamente, ate ai tudo normal.

Porem que Codigo eu devo usar para mostrar o resultado dentro de um JTable ao inves de um JOptionPane???

Poderia alguem me ajudar???

2 Respostas

Anselmo.axo

Eae blz…

modelo = new DefaultTableModel();
      tabela = new JTable(modelo);
      tabela.setRowHeight(20, 30);
	// Criando colunas
	modelo.addColumn("???????");  


             //gerando a consulta no Jtable...
              String nome = rs.getString("Contrato");
			

			String s[] = {nome };
			modelo.addRow(s);

Para melhor detalhamento…da uma olhada em:
http://java.sun.com/j2se/1.3/docs/api/javax/swing/JTable.html

Abs,
Axo

moacirjava

Tem essa classe aqui só pra mexer com JTable. Peguei aqui mesmo no fórum.

import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.table.AbstractTableModel;


public class ModeloTabela extends AbstractTableModel{

	private ArrayList linhas = null;
	private String [] colunas = null;
	

	
	public ModeloTabela(ArrayList dados, String[] colunas){
		setLinhas(dados);
		setColunas(colunas);
        
	}

	
	public int getColumnCount() {
        return getColunas().length;
    }

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

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

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

	
	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);
	}
	
	
	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;
	}

	
	public void removeRow(int row){
		getLinhas().remove(0);
		// informa a jtable que houve dados deletados passando a
		// linha reovida
		fireTableRowsDeleted(row,row);
	}

	
	public boolean removeRow(String val, int col){
		// obtem o iterator
		Iterator i = getLinhas().iterator();
		int linha = 0;
		// Faz um looping em cima das linhas
		while(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;
			}
		}
	
		return false;
	}

	
	public String getColumnName(int col){
		return getColunas()[col];
	}
}
Depois vc pode usar um método como esse pra passar os dados:
public void preencheTabela(JTable tabela,  objetoComDados){

           ArrayList aux = new ArrayList();

            //Cabecalho da tabela.
            String[] cabecalho = new String[] {"CODIGO","NOME","ENDERECO"};

            int codigo = objetoComDados.getCodigo();
            String nome = objetoComDados.getNome();
            String end  = objetoComDados.getEnd();
            
           aux.add(new String[]{codigo, nome, end});

          //Passando o conteudo e o cabecalho da tabela.
          ModeloTabela modelo = new ModeloTabela(aux, cabecalho);

          //Usando o modelo.
          tabela.setModel(modelo);
    }
Criado 6 de março de 2009
Ultima resposta 6 de mar. de 2009
Respostas 2
Participantes 3