[RESOLVIDO] Ações no Combox

18 respostas
rafaelshock

Boa tarde galera, então eu estou com duvida em como posso fazer algum ação utlizando o Combox

eu tenho a seguinte tela:

e gostaria de fazer o seguinte, quando eu escolher uma opção ele aparecer apenas o campo Nome, valor e observação e quando escolher a outra opção aparecer todas os campos!

alguém pode me ajudar?

18 Respostas

michetti

Você pode usar o

combobox.getSelectedItem();
E setar os Textfield de acordo com o selecionado.

rafaelshock

uhum… me fale mais sobre isso…

sou novo nisso, então duvidas tenho muitas…

faria um metodo para isso? como seria?

dudu_sps

voce vai criar um evento no combobox itemstatechanged algo com o nome parecido

esse evento ocorre logo apos ser selecionado

pra voce saber qual a opção escolhida voce pode usar o combobox.getSelectedItem(); que vai te retornar o objeto dentro da opção, colocando o combobox.getSelectedItem().toString(); vai te retornar o escrito que está la dentro

e voce também pode usar o combobox.getSelectedIndex(); que vai te retornar a posição (lembrando que começa do 0)

e tendo essas opções voce pode chamar um metodo para esconder os campos e deixar eles visiveis

campo.setVisible(true);
campo.setVisible(false);

freakazoid

Você resolve isso usando JavaScript, exemplo:

<script>
function testar(e){
	if(e.value == 1){
		ocultar();
	}else{
		aparecer();
	}
}
function ocultar(){
	document.getElementById("teste").style.display='none';
}
function aparecer(){
	document.getElementById("teste").style.display='inline';
}
</script>

<input type="text" id="teste"/>
<br/>

<select name="selectName" onchange="testar(this)">
	<option value="">Seleccione:</option>
	<option value="1">Ocultar</option>
	<option value="2">tornar visível</option>
</select>

Abs!

dudu_sps

freakazoid ele ta programando java desktop… rsrs

michetti

Manim o comando é o que te falei.. não tem segredo

você pega o que usuário escolheu com:

String valorCB = String.valueOf(combobox.getSelectedItem());

depois você faz a tipo uma verificação:

if(valorCB.equal("opçao")){

jTextField.setText("Nome");
jTextField.setText("Valor");
jTextField.setText("Obeservação");

}else if( valorCB.equals("outraOpção")){

jTextField.setText("Nome");
jTextField.setText("Valor");
jTextField.setText("Observação");
jTextField.setText("Estoque Atual");
jTextField.setText("Est. Ult. Comp.");
}

Não tenho certeza se é da maneira que eu postei que usa o EQUALS, teste se der errado procure algum artigo rs

rafaelshock

deu quase certo, mas fiz assim...

if(cbservico.equals("Serviço")){  
  
        lbnome.setVisible(true); 
        txtNome.setVisible(true);
        lbvalor.setVisible(true); 
        txtvalor.setVisible(true);  
        lbobservacao.setVisible(true); 
        txtObservacao.setVisible(true);
        lbestoqueatual.setVisible(false);
        txtEstoqueAtual.setVisible(false);
        lbestoqueultimacompra.setVisible(false);
        txtEstUltComp.setVisible(false);
        lbestoqueminimo.setVisible(false);
        txtEstoqueMinimo.setVisible(false);
        btOk.setVisible(true);
 
        
    }else if( cbservico.equals("Produto")){  
  
        lbnome.setVisible(true); 
        txtNome.setVisible(true);
        lbvalor.setVisible(true); 
        txtvalor.setVisible(true); 
        lbobservacao.setVisible(true); 
        txtObservacao.setVisible(true);  
        lbestoqueatual.setVisible(true);
        txtEstoqueAtual.setVisible(true);
        lbestoqueultimacompra.setVisible(true);
        txtEstUltComp.setVisible(true);
        lbestoqueminimo.setVisible(true);
        txtEstoqueMinimo.setVisible(true);
        btOk.setVisible(true);
}

mas eu gostaria que quando eu abrir essa janela ficasse tudo false, mas não está ficando...

michetti

Se você estiver usando swing, mas se tiver, vá em propriedade do campo e busque poe VISIBLE vai estar TRUE coloque FALSE em todos que você queira que fique como FALSE, depois para colocar ele visivel é so usar o comando que você ja está usando…

ou você pode fazer isso.

lbnome.setVisible(false); txtNome.setVisible(false); lbvalor.setVisible(false); txtvalor.setVisible(false); lbobservacao.setVisible(false); txtObservacao.setVisible(false); lbestoqueatual.setVisible(false); txtEstoqueAtual.setVisible(false); lbestoqueultimacompra.setVisible(false); txtEstUltComp.setVisible(false); lbestoqueminimo.setVisible(false); txtEstoqueMinimo.setVisible(false); btOk.setVisible(false);
E setar essas informações logo a baixo do comando:

initComponents();
rafaelshock

cara parece que não tem a opção visible no meu netbeans. tipo como assim?

michetti

Faz do outro jeito que eu te falei então… quando eu chegar do serviço eu posto a parte do visible no NetBeans

rafaelshock

michetti bom dia... então cara eu fiz da seguinte forma

private void cbServicoActionPerformed(java.awt.event.ActionEvent evt) {                                          
        
        cbServico.requestFocus();
        String cbservico = String.valueOf(cbServico.getSelectedItem()); 
        
        
         lbnome.setVisible(false); 
         txtNome.setVisible(false);
         lbvalor.setVisible(false); 
         txtvalor.setVisible(false); 
         lbobservacao.setVisible(false); 
         txtObservacao.setVisible(false);  
         lbestoqueatual.setVisible(false);
         txtEstoqueAtual.setVisible(false);
         lbestoqueultimacompra.setVisible(false);
         txtEstUltComp.setVisible(false);
         lbestoqueminimo.setVisible(false);
         txtEstoqueMinimo.setVisible(false);
         btOk.setVisible(false);
           
        
       
       
     if(cbservico.equals("Serviço")){  
  
        lbnome.setVisible(true); 
        txtNome.setVisible(true);
        lbvalor.setVisible(true); 
        txtvalor.setVisible(true);  
        lbobservacao.setVisible(true); 
        txtObservacao.setVisible(true);
        lbestoqueatual.setVisible(false);
        txtEstoqueAtual.setVisible(false);
        lbestoqueultimacompra.setVisible(false);
        txtEstUltComp.setVisible(false);
        lbestoqueminimo.setVisible(false);
        txtEstoqueMinimo.setVisible(false);
        btOk.setVisible(true);
 
        
    }else if( cbservico.equals("Produto")){  
  
        lbnome.setVisible(true); 
        txtNome.setVisible(true);
        lbvalor.setVisible(true); 
        txtvalor.setVisible(true); 
        lbobservacao.setVisible(true); 
        txtObservacao.setVisible(true);  
        lbestoqueatual.setVisible(true);
        txtEstoqueAtual.setVisible(true);
        lbestoqueultimacompra.setVisible(true);
        txtEstUltComp.setVisible(true);
        lbestoqueminimo.setVisible(true);
        txtEstoqueMinimo.setVisible(true);
        btOk.setVisible(true);
}  
     
        
        
    }

só que estou com um problema logo que eu abro a tela todos os campos estão lá, só que se eu selciono o "Selecionar" os campos somem, será que consegui explicar?

michetti

Procure na sua classe o initComponents(); e adicione os comando abaixo:

lbnome.setVisible(false); txtNome.setVisible(false); lbvalor.setVisible(false); txtvalor.setVisible(false); lbobservacao.setVisible(false); txtObservacao.setVisible(false); lbestoqueatual.setVisible(false); txtEstoqueAtual.setVisible(false); lbestoqueultimacompra.setVisible(false); txtEstUltComp.setVisible(false); lbestoqueminimo.setVisible(false); txtEstoqueMinimo.setVisible(false); btOk.setVisible(false);

Porque assim que iniciar a classe vai setar os valores como false, ou seja, vão todos ficar invisível. Depois quando você fizer a ação de clicar você seta os que você quer que apareça como TRUE. Teste ai.

rafaelshock

cara deu certinho… valew era isso mesmo…
só ficou uma caixa presta agora… hahaha

michetti

Posta o código ai para eu ver se acho rsrs

rafaelshock

blza, mas creio é da caixa de texto…

public FrmaddItem(java.awt.Frame parent, boolean modal, ItemDAO dao,FrmItem controle ) { super(parent, modal); this.dao = dao; this.controle = controle; initComponents(); lbnome.setVisible(false); txtNome.setVisible(false); lbvalor.setVisible(false); txtvalor.setVisible(false); lbobservacao.setVisible(false); txtObservacao.setVisible(false); lbestoqueatual.setVisible(false); txtEstoqueAtual.setVisible(false); lbestoqueultimacompra.setVisible(false); txtEstUltComp.setVisible(false); lbestoqueminimo.setVisible(false); txtEstoqueMinimo.setVisible(false); btOk.setVisible(false); }

ou vc quer da classe toda?

michetti

Ta vendo a print que você mandou no primeiro post?

Este quadrado preto você quem desenhou… vai no netbeans e procura ele e tira rsrs

rafaelshock

tirei mas não é ele não…

creio que algo da caixa de texto da Obervação!

rafaelshock

Problema resolvido… valew :smiley:

Criado 1 de novembro de 2013
Ultima resposta 7 de nov. de 2013
Respostas 18
Participantes 4