Buscar JComboBox Banco de dados

Eu tenho um JcomboBox com todos os dados de um uma coluna da minha tabela do banco, eu queria que quando eu selecionar um item do meu combobox e mandar o comando pesquisar eu possa jogar o a descrição no JtextList, como eu faço uma pesquisa no banco seguinto esse esquema?
Eu tentei fazer o seguinte:

[code]Public void Pesquisa(){
try{
String sql = “select descricao from relatorio.tbrelatorio where doenca = '”+rel_doenca.getSelectedItem()+"’";
ResultSet res = null;
res = canal.executeQuery(sql);
jlistbox.setToolTipText(res.getString(2));
}
catch (Exception e ){
System.out.println(e.getMessage());

        }   
    }  

}
[/code]

so que ñ deu certo fazer dessa maneira, alguem pode me dar uma ajuda?

O que aconteceu? Algum erro? Explique melhor.

Olá amigo

           stmt = bd.ConexaoBancoDados.conexao().createStatement();               
           rs = stmt.executeQuery("select id from tipoequipamento where descricao='" + cboTipoEquipamento.getSelectedItem() + "'");
           rs.next();
           tipoEquipamento = rs.getInt("id"); <--- tipoEquipamento será usado para inserção ou atualização no banco de dados

Silvio Guedes

Não deu erro nenhum, eu ñ to coseguindo fazer o seguinte no meu combobox eu fiz uma query para que ele pegasse todas as doençãs que estão cadastradas no meu banco referente a coluna doença, eu queria fazer com que quando fosse fazer uma pesquisa era para vc selecionar um tipo de doença no combobox e mandasse fazer uma pesquisa ele jogaria a descrição dela referente no textlist,
No meu banco eu tenho 2 colunas Doenca e Descricao, a coluna doenca esta vinculado no Combobox, so q a descricao eu ñ consegui fazer o select para ela
eu tentei fazer o seguinte

[code]Public void Pesquisa(){
try{
String sql = “select descricao from relatorio.tbrelatorio where doenca = '”+rel_doenca.getSelectedItem()+"’";
ResultSet res = null;
res = canal.executeQuery(sql);
rel_descricao.setToolTipText(res.getString(2));
}
catch (Exception e ){
System.out.println(e.getMessage());

        }     
    }     

}
[/code]
Entendeu o que eu quero fazer?

Olá amigo

para que vc ter acesso a um segundo campo de um select vc precisa definí-lo também desta forma:

Public void Pesquisa(){
         try{   
            // como vc está fazendo
            String sql = "select descricao from relatorio.tbrelatorio where doenca = '"+rel_doenca.getSelectedItem()+"'";   
        
            // agora com o campo que vc precisa
            String sql = "select doenca,descricao from relatorio.tbrelatorio where doenca = '"+rel_doenca.getSelectedItem()+"'";   

            ResultSet res = null;   
            res = canal.executeQuery(sql);       
            jlistbox.setToolTipText(res.getString(2));   <- mostra no jlistbox o 2 campo do select
            }   
            catch (Exception e ){   
                System.out.println(e.getMessage());   
                   
            }   
        }  
}

caso vc fosse mostrar todos os campos de um select:

    public static void selecionaCliente() throws Exception {
       
       try {
            stmt = bd.ConexaoBancoDados.conexao().createStatement(); 
            rs = stmt.executeQuery("select * from clientes where id='" + id_cliente + "'");           
            rs.next();
            id_cliente = rs.getString("id");
            tfIdCliente.setText(rs.getString("id"));
            tfNomeCliente.setText(rs.getString("nome"));
            tfFantasia.setText(rs.getString("fantasia"));
            tfRgInscEstadual.setText(rs.getString("rg_inscestadual"));
            tfCnpfCnpj.setText(rs.getString("cnpf_cnpj"));
            tfTelefone.setText(rs.getString("telefone"));
            tfCelular.setText(rs.getString("celular"));
       } catch (SQLException ex) {
                 Logger.getLogger(Listaclientes.class.getName()).log(Level.SEVERE, null, ex);
       }         
       stmt.close();  
}
res.getString(2))

o 2 aqui é segundo campo, mas a sua query só tem um campo entendeu?

Silvio Guedes

Silvio eu tentei fazer oq vc disse

[code]
Public void Pesquisa(){
if(conecta() == 1)
{
try{
String sql = “select doenca, descricao from relatorio.tbrelatorio where doenca = '”+rel_doenca.getSelectedItem()+"’";
ResultSet res = null;
res = canal.executeQuery(sql);
rel_descricao.setToolTipText(res.getString(2));
}
catch (Exception e ){
System.out.println(e.getMessage());

        }
    }
    desconecta();
    
}       [/code]

mudei como vc falow mas ele nao esta me retornando nda kara, o meu rel_ descricao e um JtextArea, existe algum outro meio de pegar o arquivo e jogar em um TextArea, eu fiz pelo debug, quando ele chega na linha

 rel_descricao.setToolTipText(res.getString(2));

ele ja da null, eu fiz um teste com essas 2 linhas:

rel_tratamento.setToolTipText(res.getString("descricao")); rel.setText(res.getString("descricao"));
A primira e de um JtextArea, ele nao retornava nda ja a segunda q e textField ele ja retorna o conteudo, so q eu preciso que seje em um TextArea, vc sabe como eu faço o set para um TextArea?

Olá amigo

pelo o que percebi vc está usando o setToolTipText:

rel_descricao.setToolTipText(res.getString(2));

eu uso setText:

rel_descricao.setText(res.getString(2));

o setToolTipText é para mostrar alguma mensagem do tipo Hint quando o mouse passa por cima do componente(Button etc.) Para atribuir algum valor vc deve utilizar o setText.

Silvio Guedes

O Silvio, mas eu to usando um JtextArea ele ñ me da a opção de usar o setText e se eu coloco digitando, so passa o setToolTipText, tem algum outro meio de estar fazendo isso com o JTextArea?

Vc sabe me falar se no TextField tem como quebrar linha?

Olá amigo

lá no topo vc falou em:

" eu queria que quando eu selecionar um item do meu combobox e mandar o comando pesquisar eu possa jogar o a descrição no JtextList, " não existe jTextList e sim JList. No javax tem JTextArea, jTextPanel e JtextField.

mas se vc apenas precisa colocar a descrição da doença num campo texto, então use jTextField, não entendi pq vc quer colocar numha área de texto. Então use o exemplo que já passei anteriormente.

    static JTextField tfIdCliente       = new JTextField();
    static JTextField tfNomeCliente     = new JTextField();
..
    public static void selecionaCliente() throws Exception {
       
       try {
            stmt = bd.ConexaoBancoDados.conexao().createStatement(); 
            rs = stmt.executeQuery("select * from clientes where id='" + id_cliente + "'");           
            rs.next();
            tfIdCliente.setText(rs.getString("id"));
            tfNomeCliente.setText(rs.getString("nome"));
         } catch (SQLException ex) {
                 Logger.getLogger(Listaclientes.class.getName()).log(Level.SEVERE, null, ex);
       }         
       stmt.close();  
}

veja:
http://java.sun.com/docs/books/tutorial/uiswing/examples/components/index.html#TabbedPaneDemo

tem vários exemplos, foi a partir dai que já consegui fazer muita coisa.

Silvio Guedes

É que o TextField ñ aparece toda a descrição, ele coloca tudo em uma linha so, ñ faz a quebra de linha para poder visualizar, algumas descrições são pequenas coisa de uma linha mas tem umas que são coisa de 11 linha e são grandes por isso q o TextArea seria o melhor, mas se o TextField tiver como quebrar linha ai ajudaria muito. Eu ñ sei como fazer para quebrar as linhas

Olá,

É um JTextArea ou um JTextField que vc quer que fique o resultado ???

É o TextArea

Olá amigo

eu lhe passei um link que tem o que vc precisa, um exemplo com TextArea que faz a quebra de linha.

http://java.sun.com/docs/books/tutorial/uiswing/examples/components/TextAreaDemoProject/src/components/TextAreaDemo.java

Silvio Guedes

meu amigo, eu tenho a solucao pra vc, eu custei pra faze isso que vc quer… mas a um tempo atras eu tinha a mesma duvida que vc… quando vc clica em um jlist ele retorna todos os valores menos o jtextarea.

pra vc resolver isso tem que fazer o seguinte.
vou deixar exatamente como o meu está para vc entender.

private JTextArea textLogProc = new JTextArea();
private JScrollPane barraProc = new JScrollPane(textLogProc);
private JListBox funcionarioListBoxFuncionario = new JListBox(

textLogProc.setForeground(new Color(0, 150, 0));
textLogProc.setEditable(true);
barraProc.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
barraProc.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
textLogProc.setLineWrap(true);

funcionarioListBoxFuncionario.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
funcionarioListBoxFuncionario.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
funcionarioListBoxFuncionario.addListSelectionListener(new FuncionarioListBoxEmpSelectionListener());

private class FuncionarioListBoxEmpSelectionListener implements ListSelectionListener
{
@Override
public void valueChanged(ListSelectionEvent e) {

if(e.getSource() == funcionarioListBoxFuncionario.getList())
{
Funcionario funcionario = (Funcionario) funcionarioListBoxFuncionario.getSelectedValue();
if(funcionario != null)
{

funcionarioTextNumeroProc.setText(""+funcionario.getId());
funcionarioTextNomeProc.setText(funcionario.getNome());
funcionarioTextRgProc.setText(funcionario.getRg());
//funcionarioTextUfProc.setText(funcionario.getUf());
:arrow:textLogProc.setText(funcionario.getObs()); // é isso aqui que retorna normal com o setText mas é JtextArea.

			}
		}
		
	}

//funcionarioTextUfProc.setText(funcionario.getUf()); //ESSE É UM JCOMBOBOX E EU NAO SEI RETORNAR UM VALOR DE JCOMBOBOX… O PROBLEMA DELE TA RESOLVIDO E GOSTARIA QUE RESOLVESSEM O MEU KKKKK :lol:

ESPERO TER AJUDADO

a mais uma coisa no seu model o get e set sao string nao esqueca disso

public String getObs() {
	return obs;
}
public void setObs(String obs) {
	this.obs = obs;
}