Swing

Editei o post porque eu parti para AbstractTabelModel.

Seguinte, tenho uma classe DAO que faz uma consulta e seta uma List resultado.

Agora estou com problemas em como construir minha TabelModel…
Até agora tenho isso:

import java.sql.SQLException;
import java.util.List;

import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel.*;

public class TableModel extends AbstractTableModel {
	DAO DAO = new DAO();
	private static final long serialVersionUID = 1L;
	
	private String[] colunas = { "ID Componente", "Componente", "Origem",
			"Destino", "Alias", "Ordem de Origem", "Ordem de Destino" };
	
	private List<InfraBridge> resultado;
	
	
	public void iniciaTabela() throws SQLException{
		DAO.consulta();
		resultado  = DAO.infraBridge.getListaResultado();
	}
	
		
	public int getColumnCount() {
		return colunas.length;
	}

	public int getRowCount(){
		return resultado.size();
	}
	
	public String getColunmName(int coluna){
		return null;
		
	}
	
	public Object getValueAt(int arg0, int arg1) {
		return null;
	}

}

Meu DAO é:

//import java.io.BufferedReader;
//import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class DAO {
	Conexao conexao = new Conexao();
	public String filtroAlterar;
	public String filtroAdd = "";
	Scanner entrada = new Scanner(System.in);
	InfraBridge infraBridge = new InfraBridge();
	LoggingTest log = new LoggingTest();

	private InputStream txt;
	private String confirma;
	// private String linha = "";
	private boolean errado;
	private int idComponente;
	private int idDestino;
	private int idOrigem;
	private String componente;
	private String verificaComponente;
	private int ordem1;
	private int verificaOrdem1;
	private int ordem2;
	private int verificaOrdem2;
	private String UPDATE1, UPDATE2, UPDATE3, UPDATE4, UPDATE5, UPDATE6;
	private String DELETAR1, DELETAR2, DELETAR3, DELETAR4, DELETAR5;
	private String INCLUIR_ORDEM1;
	private String INCLUIR_ORDEM2;
	private final static String INCLUIR_TFWKIBDG_CMPT = ("INSERT INTO TFWKIBDG_CMPT (NOME_CMPT,NOME_ALIA_CMPT)VALUES (?,?)");
	private final static String INCLUIR_TFWKIBDG_GRUP_SERD = ("INSERT INTO TFWKIBDG_GRUP_SERD (NOME_GRUP_SERD)VALUES (?)");
	private final static String INCLUIR_TFWKIBDG_SERD = ("INSERT INTO TFWKIBDG_SERD (NOME_SERD)VALUES (?)");
	private final static String CONSULTA = " SELECT SERD.COD_SERD, GRD_SERD.COD_GRUP_SERD, NUM_ORDE_GRUP, NUM_ORDE_SERD, NOME_GRUP_SERD, NOME_SERD, NOME_ALIA_CMPT ,CMPT.COD_CMPT, NOME_CMPT  FROM TFWKIBDG_CMPT_GRUP_SERD COMP WITH(NOLOCK)"
			+ " INNER JOIN TFWKIBDG_GRUP_SERD_SERD GRP_SERD_SERD WITH(NOLOCK)"
			+ " ON COMP.COD_GRUP_SERD = GRP_SERD_SERD.COD_GRUP_SERD"
			+ " INNER JOIN TFWKIBDG_GRUP_SERD GRD_SERD WITH(NOLOCK)"
			+ " ON GRP_SERD_SERD.COD_GRUP_SERD = GRD_SERD.COD_GRUP_SERD"
			+ " INNER JOIN TFWKIBDG_SERD SERD WITH(NOLOCK)"
			+ " ON GRP_SERD_SERD.COD_SERD = SERD.COD_SERD"
			+ " INNER JOIN TFWKIBDG_CMPT CMPT WITH(NOLOCK)"
			+ " ON COMP.COD_CMPT = CMPT.COD_CMPT";
	private String FILTRO;
	private String CONSULTAD;
	private String CONSULTAC;
	private String CONSULTAO1;
	private String CONSULTAO2;

	// aprimorar para string buffer.*******
	/*
	 * public String getConsulta(final Integer codigo) { StringBuffer sql = new
	 * StringBuffer(); sql.append("select * from table ");
	 * sql.append("where table.codigo = "); sql.append(codigo); return
	 * sql.toString(); }
	 */

	public InfraBridge[] consulta() throws SQLException {
		Conexao conexao = new Conexao();
		Connection conn = conexao.conectar();
		conn.setAutoCommit(false);
		InfraBridge[] ib = null;
		try {
			ResultSet rs = null;
			componente = infraBridge.getComponente();
			if (componente != null) {
				FILTRO = (" WHERE NOME_CMPT = " + "'" + componente + "'");
				CONSULTAD = CONSULTA + FILTRO;
				rs = conexao.executarConsulta(CONSULTAD);
			}
			if (componente == null) {
				rs = conexao.executarConsulta(CONSULTA);
			}

			List<InfraBridge> result = new LinkedList<InfraBridge>();

			System.out.println(); // formatação de linha

			if (rs.next()) {
				infraBridge.imprimirColuna();
				do {

					// InfraBridge infraBridge = new InfraBridge();

					infraBridge.setOrdem1(rs.getInt("NUM_ORDE_GRUP"));
					infraBridge.setOrdem2(rs.getInt("NUM_ORDE_SERD"));
					infraBridge.setidDestino(rs.getInt("COD_GRUP_SERD"));
					infraBridge.setidOrigem(rs.getInt("COD_SERD"));
					infraBridge.setidComponente(rs.getInt("COD_CMPT"));
					infraBridge.setServidorDestino(rs
							.getString("NOME_GRUP_SERD"));
					infraBridge.setServidorOrigem(rs.getString("NOME_SERD"));
					infraBridge.setComponente(rs.getString("NOME_CMPT"));
					infraBridge.setAliasComponente(rs
							.getString("NOME_ALIA_CMPT"));

					result.add(infraBridge);
					infraBridge.imprimirRS();

				} while (rs.next());
				infraBridge.setListaResultado(result);
				conexao.fecharResultSet(rs);

				ib = new InfraBridge[result.size()];
				result.toArray(ib);
				errado = true;
			} else {
				System.out.println("..");
				errado = false;
			}
			conn.commit();
		} catch (SQLException ex) {
			conn.rollback();
			throw new RuntimeException(ex);
		} finally {
			conexao.desconnection();
		}
		return ib;
	}

	public void incluir() throws IOException, SQLException {
		Conexao conexao = new Conexao();
		consulta();
		consultaOrdem1();
		consultaOrdem2();
		consultaComponente();
		confirma();
		if (verificaOrdem1 == 0 & verificaOrdem2 == 0
				& verificaComponente == null) {
			if (confirma.equalsIgnoreCase("S")) {
				Connection conn = conexao.conectar();
				conn.setAutoCommit(false);
				if (errado == false) {
					try {
						idComponente = conexao
								.execDML(
										INCLUIR_TFWKIBDG_CMPT,
										new Object[] {
												infraBridge.getComponente(),
												infraBridge
														.getAliasComponenteAlterar() });
						idDestino = conexao.execDML(INCLUIR_TFWKIBDG_GRUP_SERD,
								new Object[] { infraBridge
										.getServidorDestinoAlterar() });
						idOrigem = conexao.execDML(INCLUIR_TFWKIBDG_SERD,
								new Object[] { infraBridge
										.getServidorOrigemAlterar() });

						INCLUIR_ORDEM1 = ("INSERT INTO TFWKIBDG_CMPT_GRUP_SERD (COD_CMPT, COD_GRUP_SERD, NUM_ORDE_GRUP) VALUES ("
								+ idComponente + "," + idDestino + ",?)");
						INCLUIR_ORDEM2 = ("INSERT INTO TFWKIBDG_GRUP_SERD_SERD (COD_GRUP_SERD, COD_SERD, NUM_ORDE_SERD) VALUES ("
								+ idDestino + "," + idOrigem + ",?)");
						conexao.updateDML(INCLUIR_ORDEM1,
								new Object[] { infraBridge.getOrdem1Alterar() });
						conexao.updateDML(INCLUIR_ORDEM2,
								new Object[] { infraBridge.getOrdem2Alterar() });
						conn.commit();
						System.out.println("Componente incluido com sucesso");
					} catch (Exception e) {
						conn.rollback();
					}
				} else {
					help();
				}
			} else {
				System.out.println("Operação cancelada.");
			}
		} else {
			help();
		}
	}

	public void alterar() throws IOException, SQLException {

		Conexao conexao = new Conexao();
		consulta();
		consultaOrdem1();
		consultaOrdem2();
		consultaComponente();
		confirma();
		if (verificaOrdem1 == 0 & verificaOrdem2 == 0
				& verificaComponente != null) {
			if (confirma.equalsIgnoreCase("S")) {
				Connection conn = conexao.conectar();
				conn.setAutoCommit(false);
				if (errado == true) {
					try {
						if (infraBridge.getComponenteAlterar() != null) {
							UPDATE1 = "UPDATE TFWKIBDG_CMPT SET NOME_CMPT = '"
									+ infraBridge.getComponenteAlterar()
									+ "' WHERE COD_CMPT = "
									+ infraBridge.getidComponente();
							conexao.executarDML(UPDATE1);
						}
						if (infraBridge.getServidorOrigemAlterar() != null) {
							UPDATE2 = "UPDATE TFWKIBDG_SERD SET NOME_SERD = '"
									+ infraBridge.getServidorOrigemAlterar()
									+ "' WHERE COD_SERD = "
									+ infraBridge.getidOrigem();
							conexao.executarDML(UPDATE2);
						}
						if (infraBridge.getServidorDestinoAlterar() != null) {
							UPDATE3 = "UPDATE TFWKIBDG_GRUP_SERD SET NOME_GRUP_SERD = '"
									+ infraBridge.getServidorDestinoAlterar()
									+ "' WHERE COD_GRUP_SERD = "
									+ infraBridge.getidDestino();
							conexao.executarDML(UPDATE3);
						}
						if (infraBridge.getOrdem1Alterar() != 0) {
							UPDATE4 = "UPDATE TFWKIBDG_CMPT_GRUP_SERD SET NUM_ORDE_GRUP = '"
									+ infraBridge.getOrdem1Alterar()
									+ "' WHERE COD_CMPT = "
									+ infraBridge.getidComponente();
							conexao.executarDML(UPDATE4);
						}
						if (infraBridge.getOrdem2Alterar() != 0) {
							UPDATE5 = "UPDATE TFWKIBDG_GRUP_SERD_SERD SET NUM_ORDE_SERD = '"
									+ infraBridge.getOrdem2Alterar()
									+ "' WHERE COD_GRUP_SERD = "
									+ infraBridge.getidDestino();
							conexao.executarDML(UPDATE5);
						}
						if (infraBridge.getAliasComponenteAlterar() != null) {
							UPDATE6 = "UPDATE TFWKIBDG_CMPT SET NOME_ALIA_CMPT = '"
									+ infraBridge.getAliasComponenteAlterar()
									+ "' WHERE COD_CMPT = "
									+ infraBridge.getidComponente();
							conexao.executarDML(UPDATE6);
						}

						conn.commit();
					} catch (Exception e) {
						conn.rollback();
					}
				} else {
					help();
				}
			} else {
				System.out.println("Operação cancelada.");
			}
		} else {
			help();
		}
	}

	public void deletar() throws IOException, SQLException {
		Conexao conexao = new Conexao();
		consulta();
		confirma();
		if (confirma.equalsIgnoreCase("S")) {
			Connection conn = conexao.conectar();
			conn.setAutoCommit(false);
			if (errado == true) {
				try {
					DELETAR1 = ("DELETE FROM TFWKIBDG_CMPT_GRUP_SERD WHERE COD_CMPT = '"
							+ infraBridge.getidComponente() + "'");
					conexao.executarDML(DELETAR1);
					DELETAR2 = ("DELETE FROM TFWKIBDG_GRUP_SERD_SERD WHERE COD_SERD = '"
							+ infraBridge.getidOrigem() + "'");
					conexao.executarDML(DELETAR2);
					DELETAR3 = ("DELETE FROM TFWKIBDG_CMPT WHERE COD_CMPT = '"
							+ infraBridge.getidComponente() + "'");
					conexao.executarDML(DELETAR3);
					DELETAR4 = ("DELETE FROM TFWKIBDG_GRUP_SERD WHERE COD_GRUP_SERD = '"
							+ infraBridge.getidDestino() + "'");
					conexao.executarDML(DELETAR4);
					DELETAR5 = ("DELETE FROM TFWKIBDG_SERD WHERE COD_SERD = '"
							+ infraBridge.getidOrigem() + "'");
					conexao.executarDML(DELETAR5);
					conn.commit();
					System.out
							.println("O componente foi removido do banco de dados.");
				} catch (Exception e) {
					conn.rollback();
				}
			} else {
				help();
			}
		} else {
			System.out.println("Operação cancelada.");
		}
	}

	public String consultaComponente() throws SQLException {
		Conexao conexao = new Conexao();
		Connection conn = conexao.conectar();
		conn.setAutoCommit(false);
		CONSULTAC = "SELECT NOME_CMPT FROM TFWKIBDG_CMPT WHERE NOME_CMPT = '"
				+ componente + "'";
		verificaComponente = null;
		try {
			ResultSet rs = conexao.executarConsulta(CONSULTAC);

			if (rs.next()) {
				verificaComponente = rs.getString("NOME_CMPT");
			}
			conn.commit();
		} catch (SQLException ex) {
			conn.rollback();
			throw new RuntimeException(ex);
		} finally {
			conexao.desconnection();
		}
		return verificaComponente;
	}

	public int consultaOrdem1() throws SQLException {
		Conexao conexao = new Conexao();
		Connection conn = conexao.conectar();
		conn.setAutoCommit(false);
		ordem1 = infraBridge.getOrdem1Alterar();
		CONSULTAO1 = "SELECT NUM_ORDE_GRUP FROM TFWKIBDG_CMPT_GRUP_SERD WHERE NUM_ORDE_GRUP = '"
				+ ordem1 + "'";
		verificaOrdem1 = 0;
		try {
			ResultSet rs = conexao.executarConsulta(CONSULTAO1);

			if (rs.next()) {
				verificaOrdem1 = rs.getInt("NUM_ORDE_GRUP");
			}
			conn.commit();
		} catch (SQLException ex) {
			conn.rollback();
			throw new RuntimeException(ex);
		} finally {
			conexao.desconnection();
		}
		return verificaOrdem1;
	}

	public int consultaOrdem2() throws SQLException {
		Conexao conexao = new Conexao();
		Connection conn = conexao.conectar();
		conn.setAutoCommit(false);
		ordem2 = infraBridge.getOrdem2Alterar();
		CONSULTAO2 = "SELECT NUM_ORDE_SERD FROM TFWKIBDG_GRUP_SERD_SERD WHERE NUM_ORDE_SERD = '"
				+ ordem2 + "'";
		verificaOrdem2 = 0;
		try {
			ResultSet rs = conexao.executarConsulta(CONSULTAO2);

			if (rs.next()) {
				verificaOrdem2 = rs.getInt("NUM_ORDE_SERD");
			}
			conn.commit();
		} catch (SQLException ex) {
			conn.rollback();
			throw new RuntimeException(ex);
		} finally {
			conexao.desconnection();
		}
		return verificaOrdem2;
	}

	public void help() throws IOException {
		txt = getClass().getClassLoader().getResourceAsStream("txt/HELP.txt");
		Scanner s = new Scanner(txt);
		while (s.hasNext()) {
			System.out.println(s.nextLine()); // exibindo conteudo do arquivo
		}
	}

	private void confirma() {
		do {
			System.out.println("Confirma operação?");
			confirma = entrada.nextLine();
		} while (confirma.isEmpty() & !confirma.equalsIgnoreCase("S")
				& !confirma.equalsIgnoreCase("N"));
	}
}

E meu InfraBridge é:

import java.util.List;

public class InfraBridge {

	private String aliasComponente;
	private String componente;
	private String servidorOrigem;
	private String servidorDestino;
	private String componenteAlterar;
	private String aliasComponenteAlterar;
	private String servidorOrigemAlterar;
	private String servidorDestinoAlterar;
	private int ordem1;
	private int idComponente;
	private int idDestino;
	private int idOrigem;
	private int ordem2;
	private int ordem1Alterar;
	private int ordem2Alterar;
	private List<InfraBridge> resultado;
	
	public void setListaResultado (List<InfraBridge> result){
		this.resultado = result;
	}

	public void setAliasComponente(String aliasComponente) {
		this.aliasComponente = aliasComponente;
	}

	public void setComponente(String componente) {
		this.componente = componente;
	}

	public void setAliasComponenteAlterar(String aliasComponenteAlterar) {
		this.aliasComponenteAlterar = aliasComponenteAlterar;
	}

	public void setServidorOrigem(String servidorOrigem) {
		this.servidorOrigem = servidorOrigem;
	}

	public void setServidorDestino(String servidorDestino) {
		this.servidorDestino = servidorDestino;
	}

	public void setidDestino(int idDestino) {
		this.idDestino = idDestino;
	}

	public void setidOrigem(int idOrigem) {
		this.idOrigem = idOrigem;
	}

	public void setidComponente(int idComponente) {
		this.idComponente = idComponente;
	}

	public void setOrdem1(int ordem1) {
		this.ordem1 = ordem1;
	}

	public void setOrdem2(int ordem2) {
		this.ordem2 = ordem2;
	}
	
	public List<InfraBridge> getListaResultado(){
		return resultado; 
	}

	public String getAliasComponente() {
		return aliasComponente;
	}

	public int getidComponente() {
		return idComponente;
	}

	public int getidOrigem() {
		return idOrigem;
	}

	public int getidDestino() {
		return idDestino;
	}

	public String getComponente() {
		return componente;
	}

	public String getAliasComponenteAlterar() {
		return aliasComponenteAlterar;
	}

	public String getServidorOrigem() {
		return servidorOrigem;
	}

	public String getServidorDestino() {
		return servidorDestino;
	}

	public int getOrdem1() {
		return ordem1;
	}

	public int getOrdem2() {
		return ordem2;
	}

	public void setComponenteAlterar(String componenteAlterar) {
		this.componenteAlterar = componenteAlterar;
	}

	public void setServidorOrigemAlterar(String servidorOrigemAlterar) {
		this.servidorOrigemAlterar = servidorOrigemAlterar;
	}

	public void setServidorDestinoAlterar(String servidorDestinoAlterar) {
		this.servidorDestinoAlterar = servidorDestinoAlterar;
	}

	public void setOrdem1Alterar(int ordem1Alterar){
		this.ordem1Alterar = ordem1Alterar;
	}

	public void setOrdem2Alterar(int ordem2Alterar){
		this.ordem2Alterar = ordem2Alterar;
	}
	
	public String getComponenteAlterar() {
		return componenteAlterar;
	}
	
	public String getServidorOrigemAlterar() {
		return servidorOrigemAlterar;
	}

	public String getServidorDestinoAlterar() {
		return servidorDestinoAlterar;
	}

	public int getOrdem1Alterar(){
		return ordem1Alterar;
	}
	
	public int getOrdem2Alterar(){
		return ordem2Alterar;
	}

	public void imprimirColuna() {
		System.out.printf("%s %30s %28s %28s %28s %29s", "Nome do Componente",
				"Alias do Componente", "Servidor de Origem",
				"Servidor de Destino", "Ordem de Origem", "Ordem de Destino\n");
	}

	public void imprimirRS() {
		System.out.printf("%s %29s %29s %27s %28s %27s\n", componente,
				aliasComponente, servidorOrigem, servidorDestino, ordem1,
				ordem2);
	}
}

Obrigado pela atenção.

Neste link tem vários tutoriais ensinando a fazer um TableModel, com certeza te ajudarão.

Dá uma olhada nesse TableModel feito pelo Eric Yuzo, vai facilitar muito a compreensão sobre o assunto:

http://www.guj.com.br/java/225793-exemplo-de-tablemodel

ah! sem querer ser chato, mas muda o título pra algo mais sugestivo, como “Problemas em construir minha TableModel”. Assim fica mais claro pra quem for te ajudar e pra quem tiver as mesmas dúvidas que você.