JButton + JTable

Boa noite galera estou com uma dificuldade enorme, o meu problema é o seguinte:
criei uma consulta em um banco de dados e eu gostaria de quando apertar o Jbutton ele me mostrasse uma tabela na mesma janela com os resultados obtidos desta consulta, porém eu não estou conseguindo vincular a JTable ao Jbutton, alguém sabe como faço isso?

Basta voce nao deixar a tabela visivel, e adicionar um evento ao botao. Quando o botao for pressionado, a tabela fica visivel
Um exemplo bobo:

[code]import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTable;

public class teste extends JFrame {
JButton button;
JTable table;

public teste() {//metodo construtor
	button = new JButton("ativar jtable");//cria botao
	table = new JTable(15,3);//cria tabela com 15 linhas e 3 colunas

	this.add(button, BorderLayout.NORTH);//adiciona botao no norte
	this.add(table);//adiciona tabela no centro
	table.setVisible(false);//deixa tabela invisivel

	button.addActionListener(//adiciona evento ao botao
		new ActionListener() {
			public void actionPerformed(ActionEvent e) {				
				table.setVisible(true);//deixa tabela visivel
			}
		}
	);
}

public static void main(String[] args) {//cria janela
	teste e = new teste();
	e.setSize(300,300);
	e.setVisible(true);
	e.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}[/code]

espero ter ajudado
abracosssss

Muito Obrigado.
Porém eu coloquei um conteiner e eu posicionei a tabela na tela e eu já tentei vincular o comando
tela.add(tabela);
ao ActionEvent porém não funciona.
Será que você sabe como faço isso?
Esse é o código do meu ActionEvent:

{
//criando os dados

    	String CadNome = t2.getText(); //obtém nome digitado
            String M=lista1.getSelectedItem().toString();//Modelo
            String F=lista2.getSelectedItem().toString();//Flange
            String FU=lista3.getSelectedItem().toString();//Furo
            String E=lista4.getSelectedItem().toString();//Eixo
            String S=lista5.getSelectedItem().toString();//Sucção
            String P=lista6.getSelectedItem().toString();//Pressão
            String D=lista7.getSelectedItem().toString();//Deslocamento
                         	// Tabela do Relatório
                         	
                         
                         	
                         		                             		
                    try {
                         Vector titulo = new Vector();
                         Vector dados = new Vector();
                    	 String url = "jdbc:odbc:Bombas";
                         String usuario = "";
                         String senha = "";
                         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                         Connection con;
                         con = DriverManager.getConnection(url,usuario,senha);
                         Statement st = con.createStatement();
                         ResultSet rs = st.executeQuery("select * from cadastro);");
                         rs.next();
                         ResultSetMetaData rsmd = rs.getMetaData();
                         for (int i = 1; i <= rsmd.getColumnCount(); ++i)
                         cabecalho.addElement(rsmd.getColumnName(i));
                         do{
                                               }
                           while (rs.next());
                         scrollPane.setVisible(true);
                         JOptionPane.showMessageDialog(null,"Código Cadastrado!!!","Execução",JOptionPane.INFORMATION_MESSAGE);
                         con.close();
                         
                         
                         }
                                                     
                          catch(Exception event)
                           {
                             JOptionPane.showMessageDialog(null,"Problemas ao Gravar","Execução",JOptionPane.ERROR_MESSAGE);
                           }
                         tabela = new JTable (dados,tiulo);
                         scrollPane = new JScrollPane(tabela);
                         scrollPane.setBounds(20,350,500,103);
                         tela.add(scrollPane);
                                                       
                          }
                          
                          }

Bom, se as observacoes abaixo nao funcionarem, poste seu codigo inteiro para dar uma olhada.

Obs:
1 - vc adicionou tela ao frame principal?
2 - tente redimensionar a janela apos clicar no botao… talvez a janela nao estaja sendo renderizada novamente. A solucao para esse problema acredito ser utilizar o método repaint.

E porque vc nao faz isso:

  1. Cria e já adiciona a JTable ao Conteiner, e a deixa com setVisible(false).
  2. Adiciona o evento ao botão, e nesnte metodo (ou classe), vc realiza a consulta.
  3. 1 Com a resposta da consulta vc preenche o seu TableModel e o adiciona a sua JTable.
    2.2 Vc atualiza sua JTable e mostra ela na tela, setVisible(true);

Acredito que nao seja necessario o paint() ou repaint(), já que quando vc adiciona os elementos em sua JTable o MODEL lança um evento e a JTable já chama o repaint().

Muito obrigado galera. Eu fiz o seguinte acrescentei tabela.setVisible(true); ao botão, abraços.