Pesquisar na Comunidade
Mostrando resultados para as tags ''jTable Eclipse''.
Encontrado 1 registro
-
Galera, eu estou a 3 dias vendo vídeos e pdfs, tentei um monte de solução e até agora não consegui fazer a bendita jtable carregar a lista de objetos!! hahahah Vamos lá, espero que possam me ajudar!!! Estou usando o WindowBuilder do Eclipse e BD MySql Primeiramente eu criei uma classe que faz conexão com o BD MySQL e me retorna uma lista com os objetos: public class OcorrenciaDAO { public ArrayList<Ocorrencia> consultarOcorrencia (){ ArrayList <Ocorrencia>lista = new ArrayList<Ocorrencia>(); try { Connection conn = ConectaMySql.obtemConexao(); String queryInsert = "SELECT * FROM ocorrencias"; PreparedStatement ps = conn.prepareStatement(queryInsert); ResultSet rs = ps.executeQuery(); while(rs.next()){ Ocorrencia ocor = new Ocorrencia(); ocor.setId(rs.getInt(1)); ocor.setId_atendente(rs.getInt(2)); ocor.setModelo(rs.getString(3)); ocor.setPlaca(rs.getString(4)); lista.add(ocor); } } catch (Exception e) { e.printStackTrace(); } return lista; } } Ok, até ae sem nenhum problema, já testei pelo SOAPui e realmente a classe retorna uma lista de objetos. Baseado em diversos tópicos do fórum e guias, eu criei uma classe para manipular minha jTable: public class ModeloTabela extends AbstractTableModel{ private ArrayList linhas = null; private String[] colunas = null; public ModeloTabela (ArrayList lin, String[] col){ setLinhas(lin); setColunas(col); } public ArrayList getLinhas(){ return linhas; } public void setLinhas(ArrayList dados){ linhas = dados; } public String[] getColunas(){ return colunas; } public void setColunas(String[] nomes){ colunas = nomes; } public int getColumnCount(){ return colunas.length; } public int getRowCount(){ return linhas.size(); } public String getColumnName(int numCol){ return colunas[numCol]; } public Object getValueAt(int numLin, int numCol){ Object[] linha = (Object[])getLinhas().get(numLin); return linha[numCol]; } } Bom, ai eu já não consigo testar, então não sei se esta correta. Por fim, dentro do meu formulário, eu criei um método que deveria: 1) criar a lista de objetos 2) criar a jTable public void preencherTabela(){ //Array para receber a lista de objetos e array para receber os nomes do cabeçalho da jTable ArrayList<Ocorrencia> dados = new ArrayList<Ocorrencia>(); String [] Colunas = new String[]{"ID","Atendente", "Modelo","PLACA"}; //dados recebe a lista de objetos OcorrenciaDAO ocDAO = new OcorrenciaDAO(); dados = ocDAO.consultarOcorrencia(); //a partir daqui eu não sei explicar direito que ocorre ModeloTabela modelo = new ModeloTabela(dados, Colunas); tableOcorrencia = new JTable(); tableOcorrencia.setBounds(10, 164, 530, 199); tableOcorrencia.setModel(modelo); tableOcorrencia.getColumnModel().getColumn(0).setPreferredWidth(80); tableOcorrencia.getColumnModel().getColumn(0).setResizable(false); tableOcorrencia.getColumnModel().getColumn(1).setPreferredWidth(180); tableOcorrencia.getColumnModel().getColumn(1).setResizable(false); tableOcorrencia.getColumnModel().getColumn(2).setPreferredWidth(180); tableOcorrencia.getColumnModel().getColumn(2).setResizable(false); tableOcorrencia.getColumnModel().getColumn(3).setPreferredWidth(180); tableOcorrencia.getColumnModel().getColumn(3).setResizable(false); tableOcorrencia.getTableHeader().setReorderingAllowed(false); tableOcorrencia.setAutoResizeMode(tableOcorrencia.AUTO_RESIZE_OFF); tableOcorrencia.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); contentPane.add(tableOcorrencia); } E por fim, chamei esse metodo no evento windows open do meu form: public ControleOcorrencias(Atendente atendente) { addWindowListener(new WindowAdapter() { @Override public void windowOpened(WindowEvent arg0) { // --> aqui preencherTabela(); btnAdicionar.setVisible(false); txtModelo.setEditable(false); txtPlaca.setEditable(false); } }); Enfim, em que parte do código eu deveria instaciar a jTable?? Como instanciar ela junto com meu ArrayList?