fabin
Junho 29, 2011, 10:34pm
#1
Pessoal boa noite,
vi alguns topicos semelhante ao meu problema, mas nao to conseguindo resolver o problema.
tenho o form1 e form2, no form1 eu quero importar alguns dados do form2, clico no botao do form1 e abre o form2 e eu seleciono tipo o cliente, gostaria de pegar esse cliente(nome e codigo) e importar para o form 1.
Eu crio no form 2 o metodo recebeObjeto()
e no form 1 eu recebo esse objeto.
Minha duvida ta sendo essa…
Obrigado
Agradeço a todos
Fiz isso um dia desses, não se é a melhor prática mas resolveu meu problema pra que eu possa dar a continuidade e depois ver outra forma melhor de realizar essa tarefa.
Criei 1 objeto static Pessoa no frame1.
No frame2 (tela de busca de pessoas) fiz a busca da pessoa e instanciei um objeto do frame1 para passar (“settar”) o objeto Pessoa do frame2 para o frame1.
No frame1
[code]
public class Frame1 {
static Pessoa p1;
(…)
}[/code]
No frame2
[code]
public class Frame2 {
(…)
public buscarPessoa(){
// realiza a busca e passa a pessoa atraves do Objeto Frame1.
Frame1.p1 = new Pessoa("nome","sexo");
}
}[/code]
fabin, boa tarde.
Entendi o que vc quer.
APENAS EXEMPLOS…
no form 1 vc vai chamar o form 2 com um botao
dispose();
new form2().show();
Suponhetamos que vc tem o codigo do cliente em um campo texto chamado ‘tf_codigo’ e o nome do cliente em um ‘JComboBox1’ dentro do form2
dentro do form2 dois vc cria um botao que manda isso pro form1.
O evento desse botao será:
[code]String cod = tf_codigo.getText();
String nome_cliente = (String) jComboBox1.getSelectedItem();
new form1(cod, nome_cliente).show();
dispose();[/code]
É importante que no form1 vc aceite esses valores no corpo do form.
public form1(String cod, String nome_cliente)
é mais ou menos isso que vc quer?
qualquer coisa me mande mp.
fabin
Junho 30, 2011, 7:18pm
#4
Obrigadoo…
Marcus segui ao seu codigo mais …
nao to conseguindo fazer o textfield receber os dados do form 2.
obrigado a todos…
fabin
Junho 30, 2011, 7:39pm
#5
Boa noite marcus,
entendi do jeito que vc fez, mas nao to conseguindo jogar no jtextfield dentro do form 1…
Vou explicar o meu problema.
no form 1 é o formulario de Vendas e o form 2 é o formulário de Clientes.
No entanto quando estou no form 1 tenho que selecionar um cliente, entao clico em um botao que abre outra janela que e o form 2. Ai tudo bem.
No entanto criei no form 2 para pegar o codigo e o nome do cliente o seguinte codigo no botao importar
String codCliente = tf_codCliente.getText();
String nmCliente = tf_nomeCliente.getText();
new Vendas(codCliente,nmCliente).show();
no form 1 eu recebo os dados passados
public Vendas(String codCliente, String nmCliente) {//aki ta faltando alguma coisa
}
m inha logica que quero fazer, é no jtextfield do cliente do form 1 e selecionar o nome do cliente passado do form 2.
obrigado e agradeco a ajuda
Fiz aqui um exemplo em uma classe só, apenas para exemplificar, claro. Assim você tem como executar o exemplo facilmente.
Veja se te ajuda.
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class FormsTest {
/*simulacao da classe cliente*/
private static class Cliente{
private String cdCliente;
private String nmCliente;
public String getCdCliente() {
return cdCliente;
}
public void setCdCliente(String cdCliente) {
this.cdCliente = cdCliente;
}
public String getNmCliente() {
return nmCliente;
}
public void setNmCliente(String nmCliente) {
this.nmCliente = nmCliente;
}
}
/*simulacao do frame de clientes*/
private static class FrmCliente extends JDialog{
private Cliente cliente;
private JTextField tfCdCliente;
private JTextField tfNmCliente;
private JButton btnFechar;
public FrmCliente() {
setModal(true);
cliente = new Cliente();
tfCdCliente = new JTextField();
tfCdCliente.setPreferredSize(new Dimension(100,20));
tfNmCliente = new JTextField();
tfNmCliente.setPreferredSize(new Dimension(100,20));
getContentPane().setLayout(new FlowLayout());
getContentPane().add(new JLabel("codigo: "));
getContentPane().add(tfCdCliente);
getContentPane().add(new JLabel("nome: "));
getContentPane().add(tfNmCliente);
setBounds(0,0,400,200);
setLocationRelativeTo(null);
btnFechar = new JButton("Fechar");
btnFechar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
getContentPane().add(btnFechar);
}
public Cliente getCliente(){
setVisible(true);
cliente.setCdCliente(tfCdCliente.getText());
cliente.setNmCliente(tfNmCliente.getText());
return cliente;
}
}
/*simulacao do frame de vendas*/
private static class FrmVendas extends JFrame{
private Cliente cliente;
private JTextField tfCdCliente;
private JTextField tfNmCliente;
private JButton btnCarregaCliente;
public FrmVendas() {
tfCdCliente = new JTextField();
tfCdCliente.setPreferredSize(new Dimension(100,20));
tfNmCliente = new JTextField();
tfNmCliente.setPreferredSize(new Dimension(100,20));
btnCarregaCliente = new JButton("Carregar Cliente");
btnCarregaCliente.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
cliente = new FrmCliente().getCliente();
tfCdCliente.setText(cliente.getCdCliente());
tfNmCliente.setText(cliente.getNmCliente());
}
});
getContentPane().setLayout(new FlowLayout());
getContentPane().add(new JLabel("codigo: "));
getContentPane().add(tfCdCliente);
getContentPane().add(new JLabel("nome: "));
getContentPane().add(tfNmCliente);
getContentPane().add(btnCarregaCliente);
setBounds(0,0,800,600);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
/*metodo main*/
public static void main(String[] args) {
new FrmVendas();
}
}
Bom dia, tudo joia?..
entendi…
Vamos la…
[code]public Vendas(String codCliente, String nmCliente) {//aki ta faltando alguma coisa
} [/code]
Vc está recebendo os dados…
para testar se esta recebendo certo, mande um JOptionPane na tela com as variaveis que recebeu … exe:
[code]public Vendas(String codCliente, String nmCliente) {
JOptionPane.showMessageDialog(null,"o Codigo é.: "+codCliente);
JOptionPane.showMessageDialog(null,"o nome do cliente é.: "+nmCliente);
} [/code]
Se vc estiver recebendo os valores como queira é só atribuir ao campo textfield.
Ex:
jtextfield.setText("Cliente.: "+nmCliente)
Teste isso e me avise por favor.