Essa eh dificil...resultado de query em tabela

Olah pessoal boa tarde…
estou tentando montar uma estrutura para mostrar o resultado de uma pesquisa de modo que ao aparecere na tela o usuario possa alterar os valores se quiser…
Por exemplo uma tabela onde cada linha eh um registro…uma agenda…
cada linha tem codigo,nome, telefone,email…
o que eu tenho em mente eh o seguinte…quando clicar no codigo…aparece uma janela separada mostrando os dados e os botoes para alterar ou excluir…
Imagino que no lugar do codigo eu possa colocar um botao com o codigo nele…
soh o que me quebra a cabeca eh como montar esta tabela…
Alguem jah fez algo parecido…tem um modelo para me passar.

Obrigada.
[]'s
Diana.

Cara posso te dizer como colocar na tabela , para editar e uma outra história

Vector lin= new Vector();
		Vector colun= new Vector();
		Vector dod= new Vector();	
		
	 String agenda="Select * from Principal";
	 
		try{		
	con=c.getConect();
	LogB lb= new LogB();
	Statement st=con.createStatement();
	ResultSet rs=st.executeQuery(agenda);
	ResultSetMetaData rsmd= rs.getMetaData();
	for(int col=1;col<=rsmd.getColumnCount();col++)
		colun.add(rsmd.getColumnName(col));
		while(rs.next()){
		dod.addElement(Integer.toString(rs.getInt(1)));
		dod.addElement(rs.getString(2));
		dod.addElement(Integer.toString(rs.getInt(3)));
		dod.addElement(Integer.toString(rs.getInt(4)));
		dod.addElement(Integer.toString(rs.getInt(5)));
		dod.addElement(rs.getString(6));
		dod.addElement(rs.getString(7));
		dod.addElement(Integer.toString(rs.getInt(8)));
		dod.addElement(rs.getString(9));
		
		
		lin.addElement(dod);
		dod= new Vector();
		}
			}
		catch(SQLException e){
		JOptionPane.showMessageDialog(null,"Erro"+e.getMessage(),"Erro no Banco de dados",2);
			}	
		finally{
			c.desconnect();
			System.out.println("Conexão fechada em agenda()");
			}
			tb=new JTable(lin,colun);
			tb.getColumnModel().getColumn(0).setPreferredWidth(15);
			tb.getColumnModel().getColumn(1).setPreferredWidth(80);
			tb.getColumnModel().getColumn(2).setPreferredWidth(70);
			tb.getColumnModel().getColumn(5).setPreferredWidth(110);
			tb.getColumnModel().getColumn(8).setPreferredWidth(150);
			tb.getColumnModel().getColumn(8).setHeaderValue("Endereço");
			tb.getColumnModel().getColumn(9).setMaxWidth(0);
			tb.getColumnModel().getColumn(10).setMaxWidth(0);
			tb.getCellRenderer(1,1);


			
			jsp=new JScrollPane(tb);
			
			System.out.println(""+tb.getRowCount()+"");

Pode se usar vetor como ArrayList

JTable…

http://java.sun.com/docs/books/tutorial/uiswing/components/table.html