Pessoal,
Suponhamos que tenho dois JFrames, ex. Pedidos e Fornecedores. Para cada novo pedido, preciso selecionar um fornecedor no JFrame específico. Como faço um método para inserir o código do fornecedor selecionado no JFrame de pedidos?
Valeu galera!
Você tem que de algum modo passar para a nova janela o JTextField que deve receber o valor. Talvez algo do tipo
JanelaFornecedor janelaFornecedor = new JanelaFornecedor(meuTextField);
na classe JanelaFornecedor você teria um campo
private JTextField destino;
e no método (provavelmente um botão que você clica)
destino.setText(codigoFornecedor);
É só um exemplo e depende muito de como a aplicação estruturada (talvez você possa passar até o frame de pedido inteiro, dependendo do que for preencher)
Coloquei um exemplo, é algo simples e rotineiro para os + experientes, é a minha 1ª aplicação…
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Pedidos extends JFrame {
public Pedidos() {
this.setTitle(“Gerar Pedidos”);
this.getContentPane().setLayout(null);
//JTextFiel que recebe o código do Fornecebor (que vem do JFrame Fornecedores)
JTextField jtfPedido = new JTextField();
jtfPedido.setBounds( 10 ,75 ,180,25 );
getContentPane().add(jtfPedido);
//JButton que abre o JFrame que lista todos fornecedores em uma tabela.(Pra simplificar usarei um JTextField, pois é só um exemplo)
JButton jbBotaoConsultar = new JButton(“Consulta Fornecedores”);
jbBotaoConsultar.setBounds( 10 ,120 ,180,25 );
jbBotaoConsultar.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Aqui está acusando erro no construtor
Fornecedores fornecedores = new Fornecedores( this );
}
});
getContentPane().add(jbBotaoConsultar);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(400, 300);
this.setVisible(true);
}
public static void main(String[] args) {
Pedidos aaa = new Pedidos();
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import br.com.gst.testes.swings.metodoremoto.*;
import javax.swing.JTextField;
public class Fornecedores extends JFrame {
private Pedidos pedidos;
public Fornecedores(Pedidos pedidos) {
this.pedidos = pedidos;
this.setTitle(“Consulta”);
this.getContentPane().setLayout(null);
//seria uma tabela, mas é um exemplo e usarei um JTextFiel pra simplicicar
//Aqui vai o código do fornecedor
JTextField jtfFornec = new JTextField();
jtfFornec.setBounds( 10 ,75 ,160,25 );
getContentPane().add(jtfFornec);
JButton jbTransporta = new JButton(“Transporta”);
jbTransporta.setBounds( 10 ,45,160 ,25 );
jbTransporta.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
tranportar();
}
});
getContentPane().add(jbTransporta);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setSize(400, 300);
this.setLocation(50,50);
this.setVisible(true);
}
public void tranportar(){
/*
- Neste método, preciso pegar o texto de jtfFornec (de Fornecedores)
- e por no jtfCampo (de Pedidos).
- O construtor Pedidos(this) que está na classe Fornecedor está acusando erro…
*/
}
}