Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Construtor não é reconhecido na classe Main [Java]

Criei uma classe que possui um construtor e esse construtor retorna um método que cria, lê e escreve em um arquivo. Estou tendo dificuldades em chamar esse construtor na classe Main, gostaria de coletar todos os erros que estão no catch ou else. O que estou fazendo de errado ao chamar o construtor na classe Main? (OBS: não irei colocar o método que estou chamando no construtor para a pergunta não ficar grande)

Construtor:

public arquivoLog2(String erros) {
        escreverlog(erros);
}

Como tentei chamar o construtor na classe Main através da linha: arquivoLog2("Usuário ou/e senha inválidos...");

private void btnLogarActionPerformed(java.awt.event.ActionEvent evt) {                                         
    if (cnxSql.autenticaUsuario(txtEmail.getText(), txtSenha.getText())) {// 
      Autenticação de login;
        cnxSql.verificaAtivoID();
        bv.jlBemVindo.setText("Bem vindo, " + user.getNome());
        bv.setVisible(true);// Mostra ou oculta esta janela instaciada, dependendo do valor de parâmetro booleano;
        dispose();// Fecha a tela anterior aberta(inicioLogin) e libera memoria para o SO;  
    } else {
      arquivoLog2("Usuário ou/e senha inválidos...");  
     JOptionPane.showMessageDialog(null, "Usuário ou/e senha inválidos...", "Erro!", JOptionPane.ERROR_MESSAGE);
    }
3 respostas

Olá Jéssica tente da seguinte forma: Como é um Construtor ele precisa ser Instanciado.

new arquivoLog2("Usuário ou/e senha inválidos...");

Clovis, muito obrigada pela ajuda! A Classe Main reconheceu o meu construtor, porém não gerou o arquivo log desejado... Poderia me ajudar nisso, também? Aqui está o código do método que inseri dentro do construtor, pelo meu entendimento, pedi para este método criar, ler e escrever em um arquivo txt.

private void escreverlog(String erros) {

        try {
            arquivo = new File("C:\\Users\\Jess\\Desktop\\Mainline-master-EU\\log.txt");
            fileReader = new FileReader(arquivo);
            bufferedReader = new BufferedReader(fileReader);
            Vector texto = new Vector();
            while(bufferedReader.ready()){
                texto.add(bufferedReader.readLine());
            }
            fileWriter = new FileWriter(arquivo);
            bufferedWriter = new BufferedWriter(fileWriter);
            for(int i=0;i<texto.size();i++) {
                bufferedWriter.write(texto.get(i).toString());
                bufferedWriter.newLine();
            }
            bufferedWriter.write(erros);
            bufferedReader.close();
            bufferedWriter.close();
        } catch (FileNotFoundException ex) {
            try {
                arquivo.createNewFile();
                escreverlog(erros);
            } catch (IOException ex1) {
                System.exit(0);
            }
        }
        catch (IOException er){
            System.exit(0);
        }

    }
solução!

Jéssica, Você pode criar um FileWriter com o caminho onde você quer e o nome do arquivo a ser Criado:

new FileWriter("C:\\Users\\Jess\\Desktop\\Mainline-master-EU\\log.txt");

E um PrintStream para escrever dentro da Instância de FileWriter e no fim apenas feche o FileWriter com close();

Se tiver mais dúvidas: https://www.devmedia.com.br/criando-e-gravando-dados-em-txt-com-java/23060