Atualizando Table Model; Table

Ola pessoal, encontrei bastante respostas no google porem
nao consegui fazer funcionar ou n se adaptou ao meu caso.
Eu kero simplesmente atualzar minha tabela apos a insercao


public class App extends JFrame{

	private JTable tabela;
	private JScrollPane scroll;
	private JPanel painel = new JPanel();
	private JTextField idConta = new JTextField();
	private JTextField valor = new JTextField();
	private JButton btnExecuta = new JButton("Executa");
	
	public App(){
		this.setSize(600, 600);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.painel.setLayout(new GridLayout(1,3));
		this.painel.add(idConta);
		this.painel.add(valor);
		btnExecuta.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				insereMovimentoConta();
				montaTabela();
			}

		});
		this.painel.add(btnExecuta);
		this.getContentPane().add(painel,BorderLayout.NORTH);
				
		montaTabela();

	}
	
	private void montaTabela() {
		Connection conn;
		tabela = new JTable();
		ResultSet rs = null;
		try {
			conn = SingleConnection.getInstance();
			PreparedStatement ps = conn.prepareStatement("select * from movimentoconta where saldook = 0");
			rs = ps.executeQuery();
			DefaultTableModel modelTabela = new DefaultTableModel(null,new String[]{"id_conta","valor"});
			while (rs.next()){
				modelTabela.addRow(new String[]{
						Integer.toString(rs.getInt("id_conta")),
						Double.toString(rs.getDouble("valor"))
				});
			}
			tabela.setModel(modelTabela);
			scroll = new JScrollPane(tabela);
			this.getContentPane().add(scroll);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void insereMovimentoConta() {
		Connection conn;
		try{
			conn = SingleConnection.getInstance();
			String sql = "insert into movimentoconta (id_conta,valor,saldook) values (?,?,0)";
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, Integer.parseInt(idConta.getText()));
			ps.setDouble(2, Double.parseDouble(valor.getText()));
			ps.execute();
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
	public static void main(String args[]){
		App form = new App();
		form.setVisible(true);
	}
	
}

quando abre o sistema ele chama o monta tabela, que funciona certin
e coloquei tbm o montatabela() no evento do botao, porem mesmo
chamando n atualiza, tentei por repaint na tabela e updateUi,
so n sei se foi no lugar certo. Obrigado

Cara, nesse método montar tabela toda hora vc cria uma tabela nova e insere no frame. Uma forma melhor seria vc colocar a tabela como atributo e só iniciá-la uma vez no contrutor. Depois ter um método só apra inserir ou remover os dados dessa tabela. Já pensou ter que reconstruir toda a tabela só para inserir uma linha?
Espero ter ajudado.

eu fiz na declaracao jtable tabela = new jtable()
e no montar eu passo ela como parametro
porem quando eu chamado o botao ele insere e monta
uma tabela vazia, como se o tabela do actionlistener
nao pegasse a atual,
como faco para atualizar minha tabela?

Coloca o código aí.
Algumas coisas:
Se você está usando a tabela como atributo, não precisa passá-la como parametro.
Você nao precisa setar o model toda hora. Quando for inserir uma linha, basta inseri-lá direto na tabela, se não me engano tem uns métodos da JTable que faz isso.

Ah, se seu dados forem baseados num bean e vc só está querendo mostrá-los na tabela, tanta usar o SwingBean (http://swingbean.sourceforge.net/). Se não conseguir usar, depois eu coloco um exemplo aqui usando o swingbean, pq tenho exemplo só em casa.