Recuperar valores de outro Jframe?

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.

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.

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 ?

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) {
//JOptionPane.showMessageDialog(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

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
  }
});
2 curtidas

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

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

1 curtida

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

1 curtida