JComboBox e Sql Server TextField

9 respostas
F

Como fazer com q comboBox receba valores de uma tabela do banco e ao alterar valor do combo, altere também valor de uma textfield que recebe outra coluna da mesma tabela?

Código q estou tentando fazer funcionar

public void atualiza(){		
	try {
	
		String sql = "select * from impressora";
		statement = bd.con.prepareStatement(sql);
		rs = statement.executeQuery();
	
		while(rs.next()){
			cImpressora.addItem(rs.getString(1));
			txtImp.setText(rs.getString(2));
		}
		
	}
	catch (Exception erro) {
		JOptionPane.showMessageDialog(null, "Truta hine " + erro.toString());
	}
}

9 Respostas

F

Não entendi o que você perguntou.
Mas acredito que seja se você receber o valor no Combo por exemplo “DESKJET” você queira que mostre um resultado no TextField.

Não se esqueça que COMBOBOX é um VETOR então você pode armazenar vários valores atraves no rs.next(), e no txtimp, você armazenará somente o último valor.

Então faça algo com o método equals();(crie um evento) e caso você ache “DESKJET” no COMBO ao ser clicado, você fará uma pesquisa no BD e preencherá a JTETFIELD.

K

Quando você usa um resultset ele retorna null, 1 ou mais valores, então te aconselho a criar uma String[] ou uma ArrayList, no caso eu criaria uma Array pois ficaria mais fácil. Mas pode escolher o que quiser…

F

No caso …digamos que o ComboBox mostre a Marca e o textfield o modelo…entende ? Ai cada vez q mudo o combo…também muda a textfield

F

Foi exatamente que disse.
Se achar uma coisa, crie um método que chama uma query para procurar outra. Não precisa você sobrecarregar seu sistema trazendo tudo que que tem no BD.
Então popule somente a COMBOBOX, depois crie uma String que recebe a COMBOX, depois analise ela com o equals

string.equals("DESKET!") {
  //CHAMA BD AQUI (Query e da um set na TESXTFIELD),
}
F

Mais ou menos isso ? haha

try{
		
		String sql = "select * from impressora";
		statement = bd.con.prepareStatement(sql);
        rs = statement.executeQuery();
        
        while(rs.next()){
        cImpressora.addItem(rs.getString(1));	
        
       
        }
       
        	String code = (String) cImpressora.getSelectedItem();
        	code.equals("modelo"){
        	String sql1 = "select * from impressora";
			statement = bd.con.prepareStatement(sql);
            rs = statement.executeQuery();
F

Eu faria assim:
Veja apenas sua classe conexão como você usa ou fez ela:

if(code.equals("modelo"){
Strig sql = "select * from impressora";
rs = statement.executeQuery(sql);
            try {
                con.resultset.next();
                do {
               txtImp.setText(sql);
                  }                     
                } while (con.resultset.next());
            } catch (Exception e) {
          }
F

testando…

F

Tem algo errado aqui… ? não aparece nada na TXT

try {

String sql = "select * from impressora";
			statement = bd.con.prepareStatement(sql);
            rs = statement.executeQuery();
            
	    
		 
		 
		 while(rs.next()){
		        cImpressora.addItem(rs.getString(1));
		        
		        String code = (String) cImpressora.getSelectedItem();
		        if(code.equals(rs.getString("modelo"))){
					 String sql1 = "select * from impressora";
					 statement = bd.con.prepareStatement(sql1);
					 rs = statement.executeQuery(sql1);
					             try {
					                 rs.next();
					                 do {
					                txtImp.setText(sql1);
					                   }
					                 
					                  while (rs.next());
					                 
					             } catch (Exception e) {
					           }
				 }
				 
		        }
		 
		
		 
		 }catch(Exception e){
	    e.printStackTrace();
F

também fiz assim e quase deu certo…mas só aparece um registro

public void fillText(){

try{
		String sql = "select * from impressora";
		statement = bd.con.prepareStatement(sql);
        rs = statement.executeQuery();
        
        
        while(rs.next()){
				cImpressora.addItem(rs.getString("nPatrimonio"));	
				 String code = (String) cImpressora.getSelectedItem();
				try {
				        String sql1 = "select * from impressora WHERE nPatrimonio='"+code +"'";
				        statement = bd.con.prepareStatement(sql1);
				        rs = statement.executeQuery();

				          while (rs.next()){
				           txtImp.setText(rs.getString("modelo"));
				       }
				 }
				 catch(Exception e){
				    e.printStackTrace();
				 }
	      
				}
			} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	
	
	
	
}
Criado 22 de junho de 2016
Ultima resposta 26 de jun. de 2016
Respostas 9
Participantes 3