Recuperar valores de outro Jframe?

7 respostas Resolvido
programaçãojavamysql
W

Estou desenvolvendo um projeto no modelo MVC e estou preso nessa etapa que é “SIMPLES”.
tenho 3 tabelas, Produtos, Fornecedores e Tipos de Produto. O Formulário de fornecedor e Tipos de Produto já esta funcionando normalmente, estou programando o Formulário de Produtos. Quando chego no campo pra informar o tipo de produto, ao lado tem um botão onde redireciona o usuário pra uma janela de pesquisa que tbm já esta funcionando. Quando o usuário clica no registro desejado na tabela de pesquisa esse registro e armazenado em uma variável da seguinte forma.

String tipoDeProduto=String.valueOf(tabelaPesquisa.getModel().getValueAt(tabelaPesquisa.getSelectedRow(),1));

O que estou tentando fazer é enviar o valor dessa variável > tipoDeProduto para minha JtextField do formulário de Produtos, mas não consigo estou a dois dias preso nisso.:confused:

tentei fazer da seguinte maneira, no meu jframe de pesquisa eu importei minha classe modeloTipos que contem meus atributos da tabela de tipos de produto e passei o valor da string para o atributo TIPO da minha classe ModeloTipo através do do SET. mas da problema na hora de recuperar esse valor no meu JframeProdutos.

7 Respostas

Jonathan_Medeiros

Você pode criar uma variável publica no seu frame de pesquisa, e recuperar através dele, ou passar o objeto como parâmetro no construtor do seu frame de pesquisa, aí você movimenta a informação dentro deste objeto, sendo possível assim recuperar tudo o que for necessário.

W

Entendi, mas quando o usuário seleciona o registro que ele quer na tabela e clica em confirmar o formulário de pesquisa fecha automático, devendo então aparecer o registra na jtextfield do jframe produtos, mesmo com ele fechado consigo recuperar o valor da variável publica do jframe pesquisa ?

W

método de preencher tabela pesquisa

3

public void preenchetabelaPesquisa(String sql){

ArrayList dados=new ArrayList();

String[] colunas=new String[]{ID,Tipo,Descrição};

conectaPesquisa.conexao();

conectaPesquisa.executaSQL(sql);

try {

conectaPesquisa.rs.first();

do{

dados.add(new Object[]{conectaPesquisa.rs.getInt(tip_id),conectaPesquisa.rs.getString(tip_nome),conectaPesquisa.rs.getString(tip_desc)});

}while(conectaPesquisa.rs.next());

} catch (Exception e) {

<a href="//JOptionPane.showMessageDialog">//JOptionPane.showMessageDialog</a>(null, “Erro ao preencher Tabela!!”+“Nenhum Servico Cadastrado”+e);

}

conectaPesquisa.desconcta();

modeloTabela tabela=new modeloTabela(dados, colunas);
tabelaPesquisa.setModel(tabela);
        tabelaPesquisa.getColumnModel().getColumn(0).setPreferredWidth(40);
        tabelaPesquisa.getColumnModel().getColumn(0).setResizable(true);
        tabelaPesquisa.getColumnModel().getColumn(1).setPreferredWidth(100);
        tabelaPesquisa.getColumnModel().getColumn(1).setResizable(true);
        tabelaPesquisa.getColumnModel().getColumn(2).setPreferredWidth(250);
        tabelaPesquisa.getColumnModel().getColumn(2).setResizable(true);         
        
        tabelaPesquisa.getTableHeader().setReorderingAllowed(false);
        tabelaPesquisa.setAutoResizeMode(tabelaPesquisa.AUTO_RESIZE_OFF);
        tabelaPesquisa.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    }

3

Jonathan_Medeiros
Solucao aceita

Sim, basta implementar o seu listner e recuperar o valor!

final Consulta consulta = new Consulta(this, true);
consulta.setVisible(true);                       

consulta.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
  public void windowClosed(java.awt.event.WindowEvent evt) {
      jTextField.setText(consulta.variavel);//Aqui você recupera os valores
  }
});
W

Não entendi muito bem, desculpa seu novato em Java. onde implemento esse cod que vc mandou ? no jframe pesquisa ou no jframe produtos ?

Jonathan_Medeiros

Implementa no seu frame de produtos, onde você chama o seu frame de pesquisa.

W

cara, muito obrigado mesmo, deu certo. Estou desde ontem tentando fazer isso! :relaxed:

Criado 6 de outubro de 2017
Ultima resposta 6 de out. de 2017
Respostas 7
Participantes 2