Como atualizar uma JTable criada apartir de um BD?[RESOLVIDO]

1 resposta
Raarm

Eu tenho uma JTable com dados de um BD......eu estou criando um vector com informações de um bd e com este vetor eu crio a JTable!!

.........   
Vector tab1 = new Vector();   
while(rs.next())   
        {   
            Object[] data = {new Boolean(false),rs.getString(1)}; // primeira coluna de checkbox   
            tab1.add(data);   
                           
        }   
.........   
  
MyTableModel mdes1=new MyTableModel(columnNames,tab1,edicao);   
jTable1=new JTable(mdes1);   
jTable1.setPreferredScrollableViewportSize(new Dimension(400, 60));   
jTable1.setModel(mdes1);   
initColumnSizes(jTable1,columnNames.length);//tabela e numero de colunas   
  return jTable1;   
  
  
...........   
  
private void initColumnSizes(JTable table,int col)   
{   
    MyTableModel model = (MyTableModel)table.getModel();   
    TableColumn column = null;   
    Component comp = null;   
    int headerWidth = 0;   
    int cellWidth = 0;   
    TableCellRenderer headerRenderer =   
    table.getTableHeader().getDefaultRenderer();   
    for (int i = 0; i < col; i++)   
    {   
        column = table.getColumnModel().getColumn(i);   
        comp = headerRenderer.getTableCellRendererComponent(   
                             null, column.getHeaderValue(),   
                             false, false, 0, 0);   
        headerWidth = comp.getPreferredSize().width;   
        comp = table.getDefaultRenderer(model.getColumnClass(i)).   
                         getTableCellRendererComponent(   
                             table, null,   
                             false, false, 0, i);   
        cellWidth = comp.getPreferredSize().width;   
         column.setPreferredWidth(Math.max(headerWidth, cellWidth));   
           
    }   
}  

.........
Vector tab1 = new Vector();
while(rs.next())
		{
			Object[] data = {new Boolean(false),rs.getString(1)}; // primeira coluna de checkbox
			tab1.add(data);
						
		}
.........

MyTableModel mdes1=new MyTableModel(columnNames,tab1,edicao);
jTable1=new JTable(mdes1);
 jTable1.setPreferredScrollableViewportSize(new Dimension(400, 60));
 jTable1.setModel(mdes1);
 initColumnSizes(jTable1,columnNames.length);//tabela e numero de colunas
  return jTable1;


...........

private void initColumnSizes(JTable table,int col) 
{
    MyTableModel model = (MyTableModel)table.getModel();
    TableColumn column = null;
    Component comp = null;
    int headerWidth = 0;
    int cellWidth = 0;
    TableCellRenderer headerRenderer =
    table.getTableHeader().getDefaultRenderer();
    for (int i = 0; i < col; i++) 
    {
        column = table.getColumnModel().getColumn(i);
        comp = headerRenderer.getTableCellRendererComponent(
                             null, column.getHeaderValue(),
                             false, false, 0, 0);
        headerWidth = comp.getPreferredSize().width;
        comp = table.getDefaultRenderer(model.getColumnClass(i)).
                         getTableCellRendererComponent(
                             table, null,
                             false, false, 0, i);
        cellWidth = comp.getPreferredSize().width;
         column.setPreferredWidth(Math.max(headerWidth, cellWidth));
        
    }
}

No meu painel possui um botao......onde eu uso o framework para capturar uma imagem do scanner........

private void jButtonScanMouseClicked(MouseEvent evt)   
{   
    new MorenaStudio(); //captura imagem e já salva no banco   
}

Entao....depois deste processo de captura eu quero atualizar a minha tabela??? Alguem tem alguma sugestao????

VLW

1 Resposta

Raarm

Bom para qm quiser…o codigo ficou ruim…mas ele atualiza…Dentro da classe MorenaStudio, depois da captura e de salvar a imagem eu implementei…

Vector tab1 = new Vector();
	        final String[] columnNames = {"","Documento"};
	        boolean [] edicao = {true,false};
	        String tipo2="mysql";
	        conecta = new AppConectaBd(tipo2);
	      	conecta.novaConexao(tipo2);
	      	
	      	try
	      	{
	      		Statement st = conecta.c.createStatement();
	      		ResultSet rs=st.executeQuery(AppAssocia.query2);
	      		while(rs.next())
	      		{
	      			Object[] data = {new Boolean(false),rs.getString(1)};
	      			tab1.add(data);
	      		}
	      		st.close();
	      		rs.close();
	      		conecta.fechaConexao();
	      		
	      	}catch(Exception e)
	      	{e.printStackTrace();}
	      	model=new MyTableModel(columnNames,tab1,edicao);
	        AppAssocia.jTable1.setModel(model);//atualizo a tabela....classe AppAssocia
	        AppAssocia.initColumnSizes(AppAssocia.jTable1,columnNames.length); // Acerto a formatacao

Eu havia tentado…repaint(), revalidate()…tdo que foi possivel!! :stuck_out_tongue:

Criado 27 de novembro de 2007
Ultima resposta 27 de nov. de 2007
Respostas 1
Participantes 1