1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

.txt não mostra mensagens antigas, pega só a última e exibe

No que consiste a aplicação: salva o resultado de uma pergunta (qtd acerto e qtd erro) e mostra em outra tela.

O que a aplicação está fazendo: salva tudo e só exibe o resultado do momento que se abre a aplicação, ela desconsidera tudo que foi salvo antes. por ex: se eu jogo, salvo e fecho a aplicação ela não mostra o meu progresso anterior. Eu queria que ela mostrasse o meu progresso das jogadas anteriores, como a figura 3

problema: se eu fecho a aplicação e depois executo de novo, ele desconsidera o que tinha e mostra como se não houvesse nada no txt, ou seja ele mostra 0 acerto e 0 erro e ainda diz que é a primeira jogada. queria que mostrasse o número das jogadas anteriores e o acerto e erro em cada jogada.

tela inicial

inserir a descrição da imagem aqui

ao clicar em ver resultado aparece essa tela

inserir a descrição da imagem aqui

o que eu queria que aparecesse

inserir a descrição da imagem aqui

package visao;

    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.border.EmptyBorder;

    public class TelaExibir extends JFrame {

    private JPanel contentPane;
    private JTextArea textArea;

    public TelaExibir() {
        setFocusable(true);
        setUndecorated(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 285, 164);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        textArea = new JTextArea();
        JScrollPane scroll = new JScrollPane(textArea);
        scroll.setBounds(0, 0, 285, 164);
        contentPane.add(scroll);

        setLocationRelativeTo(null);
        setResizable(false);
    }

    public JTextArea getTextArea() {
        return textArea;
    }

    public void setTextArea(JTextArea textArea) {
        this.textArea = textArea;
    }
    }
package visao;

    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JRadioButton;

    public class TelaPainel extends JFrame {

    private JPanel contentPane;
    private JButton btVerResultado;
    private JButton btFecharResultado;
    private JButton btSalvarRespostas;
    private ButtonGroup grupo;
    private JRadioButton radioDois;
    private JRadioButton radioUm;

    public TelaPainel() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setLayout(null);
        setContentPane(contentPane);

        btVerResultado = new JButton("ver resultado");
        btVerResultado.setBounds(236, 156, 121, 23);
        contentPane.add(btVerResultado);

        btFecharResultado = new JButton("fechar resultado");
        btFecharResultado.setBounds(236, 156, 121, 23);
        btFecharResultado.setVisible(false);
        contentPane.add(btFecharResultado);

        btSalvarRespostas = new JButton("Salvar respostas");
        btSalvarRespostas.setBounds(22, 156, 131, 23);
        contentPane.add(btSalvarRespostas);

        JLabel lblQueAnimal = new JLabel("Que animal \u00E9 esse?");
        lblQueAnimal.setBounds(22, 45, 113, 14);
        contentPane.add(lblQueAnimal);

        radioUm = new JRadioButton("Cachorro");
        radioUm.setBounds(26, 75, 109, 23);
        contentPane.add(radioUm);

        radioDois = new JRadioButton("Gato");
        radioDois.setBounds(26, 113, 109, 23);
        contentPane.add(radioDois);

        grupo = new ButtonGroup();
        grupo.add(radioUm);
        grupo.add(radioDois);
        setVisible(true);
    }

    public JButton getBtVerResultado() {
        return btVerResultado;
    }

    public void setBtVerResultado(JButton brVerResultado) {
        this.btVerResultado = brVerResultado;
    }

    public JButton getBtFecharResultado() {
        return btFecharResultado;
    }

    public void setBtFecharResultado(JButton btFecharResultado) {
        this.btFecharResultado = btFecharResultado;
    }

    public JButton getBtSalvarRespostas() {
        return btSalvarRespostas;
    }

    public JRadioButton getRadioDois() {
        return radioDois;
    }

    public void setRadioDois(JRadioButton radioDois) {
        this.radioDois = radioDois;
    }

    public JRadioButton getRadioUm() {
        return radioUm;
    }

    public void setRadioUm(JRadioButton radioUm) {
        this.radioUm = radioUm;
    }

    public void setBtSalvarRespostas(JButton btSalvarRespostas) {
        this.btSalvarRespostas = btSalvarRespostas;
    }
    }
package modelo;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;

    public class AlunoArquivo {

    public static File arquivo = new File("exibir.txt");
    static DadoResultadoAluno dra = new DadoResultadoAluno();

    public static List<String> Read(String Caminho) {
        List<String> conteudo = new ArrayList<>();

        try {
            FileReader arq = new FileReader(arquivo);
            BufferedReader lerArq = new BufferedReader(arq);
            String linha = "";
            try {
                while (linha != null) {
                    conteudo.add(linha);
                    linha = lerArq.readLine();
                }
                arq.close();
                return conteudo;
            } catch (IOException ex) {
                System.out.println("Erro: Não foi possível ler o arquivo!");
            }
        } catch (FileNotFoundException ex) {
            System.out.println("Erro: Arquivo não encontrado!");
        }
        return null;
    }

    public static boolean Write(String Texto) {
        try {
            if (!arquivoExiste()) {
                arquivo.createNewFile();
                System.out.println("not");
            } 

            System.out.println("Yes");
            FileWriter arq = new FileWriter(arquivo, true);
            PrintWriter gravarArq = new PrintWriter(arq);
            gravarArq.println(Texto);
            gravarArq.close();

            return true;
        } catch (IOException e) {
            System.out.println(e.getMessage());
            return false;
        }
    }

    public static void salvar(DadoResultadoAluno dra) {

        String print = dra.getQtdAcertoPlanificacao() + ";" + dra.getQtdErroPlanificacao();

        if (AlunoArquivo.Write(print)) {
            System.out.println("Arquivo salvo com sucesso!");
        } else {
            System.out.println("Erro ao salvar o arquivo!");
        }
    }

    public static boolean arquivoExiste() {
        return arquivo.exists();
    }
    }
package modelo;

    public class DadoResultadoAluno {

    private int qtdAcertoPlanificacao = 0;
    private int qtdErroPlanificacao = 0;
    private int contVezesSalvar = 0;

    public int getQtdAcertoPlanificacao() {
        return qtdAcertoPlanificacao;
    }

    public void setQtdAcertoPlanificacao(int qtdAcertoPlanificacao) {
        this.qtdAcertoPlanificacao = qtdAcertoPlanificacao;
    }

    public int getQtdErroPlanificacao() {
        return qtdErroPlanificacao;
    }

    public void setQtdErroPlanificacao(int qtdErroPlanificacao) {
        this.qtdErroPlanificacao = qtdErroPlanificacao;
    }

    public int getContVezesSalvar() {
        return contVezesSalvar;
    }

    public void setContVezesSalvar(int contVezesSalvar) {
        this.contVezesSalvar = contVezesSalvar;
    }
    }
package controle;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.List;

    import modelo.AlunoArquivo;
    import modelo.DadoResultadoAluno;
    import visao.TelaExibir;
    import visao.TelaPainel;

    public class ControleTelaPainel implements ActionListener {

    private DadoResultadoAluno dra = new DadoResultadoAluno();
    TelaExibir exibir = new TelaExibir();
    private TelaPainel tp;

    public ControleTelaPainel(TelaPainel tp) {
        this.tp = tp;
        this.tp.getBtFecharResultado().addActionListener(this);
        this.tp.getBtVerResultado().addActionListener(this);
        this.tp.getBtSalvarRespostas().addActionListener(this);
        lerResultados(0);

    }

    public void lerResultados(int indice) {
        List<String> linhas =  AlunoArquivo.Read("exibir.txt");

        if(linhas == null)
            return;

        dra.setQtdAcertoPlanificacao(Integer.parseInt(linhas.get(indice).split(";")[0]));
        dra.setQtdErroPlanificacao((Integer.parseInt(linhas.get(indice).split(";")[1])));
    }

    @Override
    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == tp.getBtFecharResultado()) {

            this.tp.getBtVerResultado().setVisible(true);
            this.tp.getBtFecharResultado().setVisible(false);

            exibir.setVisible(false);
        }

        else if (e.getSource() == tp.getBtSalvarRespostas()) {

            if (tp.getRadioUm().isSelected()) {
                dra.setQtdAcertoPlanificacao(dra.getQtdAcertoPlanificacao() + 1);
            } else if (tp.getRadioDois().isSelected()) {
                dra.setQtdErroPlanificacao(dra.getQtdErroPlanificacao() + 1);
            }
            dra.setContVezesSalvar(dra.getContVezesSalvar()+1);
            AlunoArquivo.salvar(dra);
        }

        else if (e.getSource() == tp.getBtVerResultado()) {

            exibir.getTextArea().setText("Na " + dra.getContVezesSalvar() + " jogada você fez " + dra.getQtdAcertoPlanificacao() + " acertos" + " e "
                    + dra.getQtdErroPlanificacao() + " tentativas erradas");

            exibir.setVisible(true);
            this.tp.getBtFecharResultado().setVisible(true);
            this.tp.getBtVerResultado().setVisible(false);

        }
    }
    }
package controle;

    import visao.TelaPainel;

    public class Main {

    public static void main(String[] args) {
        ControleTelaPainel ctp = new ControleTelaPainel(new TelaPainel());
    }
    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.