JOptionPane e JPasswordField

2 respostas
sliipzinn

Estava aqui testando algumas opções do JDBC e então me veio a idéia de conectar o banco usando inputs. Até ai tudo certo, consegui perfeitamente tudo usando apenas showInputDialogs com as opções de Banco, Usuario e Senha. Só que a senha era mostrada quando eu digitava. Então precisando ocultar isso andei pesquisando pelo fórum e pelo google e cheguei no código que vou postar a seguir. Não estou conseguindo progredir sozinho agora e por isso vim pedir ajuda.

Comentei essa parte do código porque não é o que quero:
String senha = JOptionPane.showInputDialog("Senha");

Fora esse problema que está ocorrendo tudo está em ordem aqui, acessando o banco e mostrando os dados perfeitamente.

Ai vai o erro que está dando:
C:\JavaTestes>javac BdTeste.java
BdTeste.java:29: cannot find symbol
symbol  : method getConnection(java.lang.String,java.lang.String,javax.swing.JPasswordField)
location: class java.sql.DriverManager
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/"+url, usuario, senha);
                                       ^
1 error

Ai vai o código do programa.

import java.sql.*;
import javax.swing.*;

public class BdTeste{
    public static void main (String args[] ) throws Exception{
       
        String url = JOptionPane.showInputDialog("Banco de dados");
        String usuario = JOptionPane.showInputDialog("Usuario");
        //String senha = JOptionPane.showInputDialog("Senha");
        
        // Cria campo onde o usuario entra com a senha  
        JPasswordField senha = new JPasswordField();
        senha.setEchoChar('/');
        
        // Cria um rótulo para o campo  
        JLabel rotulo = new JLabel("Entre com a senha:");
        
        // Coloca o rótulo e a caixa de entrada numa JPanel:
        JPanel entSenha = new JPanel();
        entSenha.add(rotulo);  
        entSenha.add(senha);  
        
        // Mostra o rótulo e a caixa de entrada de password para o usuario
        // e fornece a senha
        JOptionPane.showMessageDialog(null, entSenha, "Senha", JOptionPane.PLAIN_MESSAGE);
        
        
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/"+url, usuario, senha);
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT modelo, tensao, dimensoes FROM produto");
        
            System.out.println("=============================");
        while (rs.next()) {
            String modelo = rs.getString("modelo");
            String tensao = rs.getString("tensao");
            String dimensoes = rs.getString("dimensoes");
            System.out.println("Modelo: " + modelo);
            System.out.println("Tensao: " + tensao);
            System.out.println("Dimensoes: " + dimensoes);
            System.out.println("=============================");
        }
        
    }
}

Se alguém puder ajudar a resolver serei muito grato.

2 Respostas

T

Não é para usar a variável “senha” (cujo tipo é JPasswordField) e sim o valor da senha, que é “new String (senha.getPassword())”.

sliipzinn

Teria como exemplificar mais um pouco? É que to começando agora e não manjo muito.
Obrigado.

Criado 18 de março de 2009
Ultima resposta 18 de mar. de 2009
Respostas 2
Participantes 2