Problema com o if ()

3 respostas
cristianonasciment

Tenho um método q adiciona vários botões em um painel.
Negritei essa linha - System.out.println (situacao) ? só para mostrar q existe gravado varias registros no campo situação como OCUPADO;
Mas ele não entra nessa condição if (situacao == "OCUPADO") {
Ele entra só no else {}
Pq ele não entra no if {} ????
Sel alguém puder me ajudar, ficarei muito grato
Vlw !!

public void mostraChartPDV() throws SQLException {
        String NumeroUnidades [] = new String [49];
        jPmovGeral.setLayout(new GridLayout (7,7));
        Icon iconDisponivel = new ImageIcon("/Documents and Settings/User/Desktop/desktop/icones/portaaberta2.jpg");
        Icon iconOcupado = new ImageIcon("/Documents and Settings/User/Desktop/desktop/icones/ocupada.gif");
        int i=0;
        ResultSet rs = null;
        this.con = pacote_util.Conexao.getConexao();
        stmt = con.createStatement();   
        try{
            PreparedStatement pstm = this.con.prepareStatement("SELECT * FROM situacao_unidade");
            rs = pstm.executeQuery();

            String unidade, situacao = "";
            
            while(rs.next()){
                situacao = rs.getString("NomeSituacao");
                unidade = rs.getString("UNIDADE_NumeroUnidade");
              [b]  System.out.println (situacao);[/b]                        
                NumeroUnidades[i] = unidade;              
                botoes[i] = new JButton(NumeroUnidades[i]);
                botoes[i].setBackground(White);
             [b]   if (situacao == "OCUPADO") {[/b]                    botoes[i].setIcon(iconOcupado);
                    jPmovGeral.add(botoes[i]);
                    i++;  
                }
                else {
                    botoes[i].setIcon(iconDisponivel);
		    jPmovGeral.add(botoes[i]);
                    i++; 
                }
            }
            
        }catch(Exception e){
            e.printStackTrace();
        }

3 Respostas

nbluis

Olá…
Bem vindo ao Java.

Strings nunca devem ser comparadas com ==

String devem ser comparadas com

if(String.equals("valor")){

}

ou

if(String.equalsIgnoreCase("valor")){

}

Quando você fizer == para objetos ele sempre estará comparando os objetos em si, logo apenas quando você tiver duas instancias apontadas para o mesmo objeto terá uma igualdade.

Até…

joe_cqr

http://www.guj.com.br/java.tutorial.artigo.103.1.guj

da uma olha nesse tutorial, ele tem informações adicionais sobre a classe String!!!

cristianonasciment

vlw pelas explicações ai galera. entendi !!!

Criado 25 de março de 2007
Ultima resposta 26 de mar. de 2007
Respostas 3
Participantes 3