Ajuda com AbstractTableModel

Pra que serve:

public TabelaModelTeste(){
teste = new ArrayList<TesteBean>();
}

public TabelaModelTeste(ArrayList<TesteBean> lista){
this();
teste.addAll(lista);
}

Pra voce criar seu model com valores.

o this() no segundo construtor chama o primeiro sem argumentos, que vai criar a lista chamada teste para voce.

Aconteceu um problema no meu código:

Exception in thread “main” java.lang.NullPointerException
at TelaSwing.montarTabela(TelaSwing.java:22 )
at TelaSwing.montarTudo(TelaSwing.java:34 )
at Main.main(Main.java:12 )

TableModel

import java.sql.SQLException;

import javax.swing.table.AbstractTableModel;

public class ModeloTabela extends AbstractTableModel {
	private static final long serialVersionUID = 1L;
	DAO DAO = new DAO();
	
	private int linha;
	String[] colunas = {"ID Componente", "Componente", "Servidor de Origem", "Servidor de Destino", "Alias do Componente", "Ordem de Origem", "Ordem de Destino"};
	InfraBridge[] resultado = DAO.consulta();
	
	public ModeloTabela(String[] colunass, InfraBridge[] resultados) throws SQLException{
			
	}

	@Override
	public int getColumnCount() {
		return colunas.length;
	}

	@Override
	public int getRowCount() {
		try {
			linha = DAO.consulta().length;
		} catch (SQLException e){
			e.printStackTrace();
		}
		return linha;
	}

	@Override
	public Object getValueAt(int indiceLinha, int indiceColuna) {
			 
	        //verifica qual valor deve ser retornado
	        if (indiceColuna == 0) {
	            return DAO.infraBridge.getidComponente();
	        } else if (indiceLinha == 1) {
	            return DAO.infraBridge.getComponente();
	        } else if (indiceLinha == 2) {
	            return DAO.infraBridge.getServidorOrigem();
	        } else if (indiceLinha == 3) {
	            return DAO.infraBridge.getServidorDestino();
	        } else if (indiceLinha == 4) {
	            return DAO.infraBridge.getAliasComponente();
	        } else if (indiceLinha == 5) {
	            return DAO.infraBridge.getOrdem1();
	        } else if (indiceLinha == 6) {
	            return DAO.infraBridge.getOrdem2();
	        }
	        return "";
	    }
	}

Cade at TelaSwing.montarTabela(TelaSwing.java:22 ) ?

Ok ficou faltando, agora eu consegui arrumar… mas aconteceu uma coisa… quando eu executo meu código não está aparecendo nada na tela, apenas uma mini janela com o nome da aplicação.

import java.awt.BorderLayout;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class TelaSwing extends JFrame {
	DAO DAO = new DAO();
	
	private static final long serialVersionUID = 1L;
	
	JTable tabela = new JTable();
	JButton botaoIncluir = new JButton();
	JButton botaoDetalhes = new JButton();
	JPanel painel = new JPanel();
	JScrollPane scrollPainel = new JScrollPane();
	
	TelaSwing() throws SQLException{
		getContentPane().setLayout(new BorderLayout());
		montarPainel();
		montarTabela();
		
		
		
	}
	public void montarTabela() throws SQLException{
		ModeloTabela modelo = new ModeloTabela();
		tabela.setModel(modelo);
		scrollPainel.add(tabela);
	}
	public void montarPainel(){
		painel.add(scrollPainel, BorderLayout.NORTH);
		getContentPane().add(new JButton("oi"));
		getContentPane().add(painel, BorderLayout.CENTER);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		pack();
		setVisible(true);		
	}
	
}
import java.sql.SQLException;
import javax.swing.table.AbstractTableModel;

public class ModeloTabela extends AbstractTableModel {
	private static final long serialVersionUID = 1L;
	DAO DAO = new DAO();
	
	private int linha;
	String[] colunas = {"ID Componente", "Componente", "Servidor de Origem", "Servidor de Destino", "Alias do Componente", "Ordem de Origem", "Ordem de Destino"};
	InfraBridge[] resultado;
	
	public ModeloTabela() throws SQLException{
		this.resultado = DAO.consulta();
	}

	@Override
	public int getColumnCount() {
		return colunas.length;
	}

	@Override
	public int getRowCount() {
		linha = resultado.length;
		return linha;
	}

	@Override
	public Object getValueAt(int indiceLinha, int indiceColuna) {
			 
	        //verifica qual valor deve ser retornado
	        if (indiceColuna == 0) {
	            return DAO.infraBridge.getidComponente();
	        } else if (indiceLinha == 1) {
	            return DAO.infraBridge.getComponente();
	        } else if (indiceLinha == 2) {
	            return DAO.infraBridge.getServidorOrigem();
	        } else if (indiceLinha == 3) {
	            return DAO.infraBridge.getServidorDestino();
	        } else if (indiceLinha == 4) {
	            return DAO.infraBridge.getAliasComponente();
	        } else if (indiceLinha == 5) {
	            return DAO.infraBridge.getOrdem1();
	        } else if (indiceLinha == 6) {
	            return DAO.infraBridge.getOrdem2();
	        }
	        return "";
	    }
	@Override
	public String getColumnName(int colunaIndice) {
		return colunas[colunaIndice];
	}
	
	@Override
	public Class<?> getColumnClass(int columnIndex) {
		switch (columnIndex) {
		case 0:
			return String.class;
		case 1: 
			return String.class;
		case 2: 
			return String.class;
		case 3:
			return String.class;
		case 4:
			return String.class;
		case 5:
			return int.class;
		case 6:
			return int.class;
			
		default:			
			throw new IndexOutOfBoundsException("Coluna fora dos limites");
		}
	}
	
	
	
	}

//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());

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

Ok, montei meu código da TableModel e quando vou compilar ela não aparece… fui debugar e me gerou o seguinte erro no método getColumnCount():

JTable.createDefaultColumnsFromModel() line: not available [local variables unavailable]

Meu modelo ficou assim:

	import java.sql.SQLException;
import java.util.ArrayList;
	import java.util.List;
import javax.swing.table.AbstractTableModel;

	public class ModeloTabela extends AbstractTableModel {
		
		private static final long serialVersionUID = 1L;
		DAO DAO = new DAO();
		
		private String[] colunas = {"ID Componente", "Componente", "Servidor de Origem", "Servidor de Destino", "Alias do Componente", "Ordem de Origem", "Ordem de Destino"};
		

		/* Lista de Sócios que representam as resultado. */
		private List<InfraBridge> resultado;
		
		public ModeloTabela() throws SQLException {
			resultado = DAO.consulta();
		}


		/* Retorna a quantidade de colunas. */
		@Override
		public int getColumnCount() {
			// Está retornando o tamanho do array "colunas".
			// Mas como o array é fixo, vai sempre retornar 4.
			return colunas.length;
		}

		/* Retorna a quantidade de resultado. */
		@Override
		public int getRowCount() {
			// Retorna o tamanho da lista de sócios.
			return resultado.size();
		}

		/* Retorna o nome da coluna no índice especificado.
		 * Este método é usado pela JTable para saber o texto do cabeçalho. */
		@Override
		public String getColumnName(int columnIndex) {
			// Retorna o conteúdo do Array que possui o nome das colunas
			// no índice especificado.
			return colunas[columnIndex];
		};

		/* Retorna a classe dos elementos da coluna especificada.
		 * Este método é usado pela JTable na hora de definir o editor da célula. */
		@Override
		public Class<?> getColumnClass(int columnIndex) {
			// Retorna a classe referente a coluna especificada.
			// Aqui é feito um switch para verificar qual é a coluna
			// e retornar o tipo adequado. As colunas são as mesmas
			// que foram especificadas no array "colunas".
			switch (columnIndex) {
			case 0: // Primeira coluna é o nome, que é uma String.
				return int.class;
			case 1: // Segunda coluna é o telefone, que também é uma String..
				return String.class;
			case 2: // Terceira coluna é a data de cadastro,
					// apesar de ser do tipo Calendar,
					// estou retornando Date por causa da formatação.
				return String.class;
			case 3: // Quarta coluna é a mensalidade, um double.
				return String.class;
			case 4: // Quarta coluna é a mensalidade, um double.
				return String.class;
			case 5: // Quarta coluna é a mensalidade, um double.
				return int.class;
			case 6: // Quarta coluna é a mensalidade, um double.
				return int.class;
			default:
				// Se o índice da coluna não for válido, lança um
				// IndexOutOfBoundsException (Exceção de índice fora dos limites).
				// Não foi necessário verificar se o índice da linha é inválido,
				// pois o próprio ArrayList lança a exceção caso seja inválido.
				throw new IndexOutOfBoundsException("columnIndex out of bounds");
			}
		}

		/* Retorna o valor da célula especificada
		 * pelos índices da linha e da coluna. */
		@Override
		public Object getValueAt(int rowIndex, int columnIndex) {
			// Pega o sócio da linha especificada.
			InfraBridge infraBridge = resultado.get(rowIndex);

			// Retorna o campo referente a coluna especificada.
			// Aqui é feito um switch para verificar qual é a coluna
			// e retornar o campo adequado. As colunas são as mesmas
			// que foram especificadas no array "colunas".
			switch (columnIndex) {
			case 0: // Primeira coluna é o nome.
				return infraBridge.getidComponente();
			case 1: // Segunda coluna é o telefone.
				return infraBridge.getComponente();
			case 2: // Terceira coluna é a data de cadastro.
				return infraBridge.getServidorOrigem();
			case 3: // Quarta coluna é a mensalidade.
				return infraBridge.getServidorDestino();
			case 4: // Quarta coluna é a mensalidade.
				return infraBridge.getAliasComponente();
			case 5: // Quarta coluna é a mensalidade.
				return infraBridge.getOrdem1();
			case 6: // Quarta coluna é a mensalidade.
				return infraBridge.getOrdem2();
			default:
				// Se o índice da coluna não for válido, lança um
				// IndexOutOfBoundsException (Exceção de índice fora dos limites).
				// Não foi necessário verificar se o índice da linha é inválido,
				// pois o próprio ArrayList lança a exceção caso seja inválido.
				throw new IndexOutOfBoundsException("columnIndex out of bounds");
			}
		}

		
	}