[Resolvido] Pegar um valor de Combox e passar para outro

7 respostas
Fabiano_Araujo_da_Si

Galera, no meu form principal tenho dois Combobox um para selecionar a empresa e outra para selecionar o periodo.
Sendo que por padrão o Combobox abre na primeira empresa listada e o do periodo o primeiro mês que é o janeiro.
Até ai tudo bem, ja em um segundo form tenho um jlabel para setar o nome da empresa e outro para setar o periodo.

Então fazendo um execução ele abre o form principal normalmente, quando chamo o segundo form ele sempre seta a primeira empresa e o primeiro periodo, mesmo se eu trocalo por outro.

Ex 1: Primeira empresa tabajara o periodo e janeiro quando chamo o segundo form os jlabel ficam empresa: tabajara e periodo: janeiro

Ex 2: Agora troco a empresa e o periodo por empresa casa eletrica e periodo dezembro chamo o segundo form e ele me retorna emprsa: tabajara e periodo: janeiro

Codigo usado:
Metodo usado para preecher o combobox da empresa, ja o do periodo eu coloquei os meses em suas propriedades.

public void preeche_cb_empresa()
    {
        try
        {
            String sql = "select * from empresa";
            conecta.executaSQL(sql);
            cb_empresa.removeAllItems();
            while (conecta.ResultSet.next())
            {
                
                cb_empresa.addItem(conecta.ResultSet.getString("razao_social"));
            }
        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog(null,"Erro ao tentar preecher cb_empresa");
        }

Metodo usado para setar dados no jlabel empresa e periodo que esta no segundo form.

public void seleciona_empresa()
{
   
     form_princ pega = new form_princ();
    lb_periodo.setText((String) pega.cb_periodo.getSelectedItem());
    lb_empresa.setText((String) pega.cb_empresa.getSelectedItem());
}

7 Respostas

JoatanGuj

String pegaValor =jcombo.getSelectedItem(); aOutraCombo.addItem(pegaValor);

Seria isso?

Fabiano_Araujo_da_Si

Cara nao deu certo, no primeiro form ele pega os dados direitinho, so que no segundo ele chega como null;

JoatanGuj

posta o trecho que você manda pro segundo form

julianolandim

Boa noite, eu não sei se entendi, você quer jogar esses valores do JComboBox para um Jlabel em outra classe (outra tela) ?
Se for tenta fazer o seguinte:
vamos chamar a classe do teu primeiro form de PrimeiroForm e a do segundo de SegundoForm
abra o seu segundo form e crie a seguinte variável no escopo da classe (fora de um método)

PrimeiroForm primeiroForm ;

Ainda no segundo form coloque o metodo para setar

public void setSelecionaEmpresa(PrimeiroForm primeiroForm,String periodo, String empresa){
    this.primeiroForm = primeiroForm
    lb_periodo.setText(periodo);  
    lb_empresa.setText(empresa); 
}

Agora abra o primeiro form e coloque o seguinte código na ação do botao que abre o segundo form

SegundoForm segundoForm = new SegundoForm(null,true);
segundoForm.setSelecionaEmpresa(this,(String) pega.cb_periodo.getSelectedItem(),(String) pega.cb_empresa.getSelectedItem());
//agora você visualiza o segundo form 
segundoForm.setVisible(true);

Olha eu não sei se vai dar algum erro pois eu digitei o código direto aqui e não testei, ser for isso que você quer e o meu código estiver dando algum erro que você não consiga resolver pode postar aqui.

T+

Fabiano_Araujo_da_Si

Obrigado cara deu certo, a unica coisa que prescisei mudar foi essa linha;

lac_nf lac_nf = new lac_nf(null,true);

Para:

lac_nf lac_nf = new lac_nf();

So que fiquei um pouco perdido, eu sou um cara que gosta de desenvolver e leio muito, a maioria das coisa que eu sei aprendi na marra mais ainda to fraco.
Sera que tem como vc explicar um pouco sobre que vc fez.

Nessa linha :

PrimeiroForm primeiroForm ;

Nessa linha:

public void setSelecionaEmpresa(PrimeiroForm primeiroForm,String periodo, String empresa){ this.primeiroForm = primeiroForm

E nessa:

SegundoForm segundoForm = new SegundoForm(null,true); segundoForm.setSelecionaEmpresa(this,(String) pega.cb_periodo.getSelectedItem(),(String)

Se tiver jeito te agradeço valeu.

julianolandim

Olá Fabiano tem como explicar sim, vamos lá

// quando voce cria um atributo voce nao tem que colocar o tipo para ela ? String, int, boolean ? nesse caso o atributo primeiroForm é do tipo PrimeiroForm (PrimeiroForm é o nome da sua classe aonde esta os seus JComboBox)
PrimeiroForm primeiroForm ; 
//se você fizer assim dá na mema
PrimeiroForm primeiroForm  = null;

//aqui setamos os dados
//primeiro parametro recebe a classe Primeiroform (classe que esta mandando os dados)
// segundo parametro e terceiro parametro como voce ja sabe recebe as Strings periodo e empresa
public void setSelecionaEmpresa(PrimeiroForm primeiroForm,String periodo, String empresa){    
     //aqui ele diz que o parametro primeiroForm (aquele atributo que criamos no começo "PrimeiroForm primeiroForm") é igual a classe PrimeiroForm, isso é o que liga uma classe com a outra (liga o PrimeiroForm com o SegundoForm)
     this.primeiroForm primeiroForm ;  
  

// e por fim você chama o código abaixo no seu PrimeiroForm quando você clica no botao
SegundoForm segundoForm = new SegundoForm(null,true); // cria o atributo do tipo SegundoForm   
segundoForm.setSelecionaEmpresa(this,(String) pega.cb_periodo.getSelectedItem(),(String)    // chama o metodo que esta lá no seu SegundoForm e passa os parametros para ela (this = a classe PrimeiroForm, o periodo e a empresa)

Cara não sei se voce vai entender alguma coisa porque é um pouco dificil de explicar, espero que entenda.
Abraço

Fabiano_Araujo_da_Si

E a julianolandim deu para entender sim valeu mesmo t+.

Criado 8 de setembro de 2011
Ultima resposta 10 de set. de 2011
Respostas 7
Participantes 3