0
What the implementation is: volley the result of a question (Qtd hit and Qtd error) and showcase on another screen.
What the app is doing: saves everything and only displays the result of the moment the application opens, it disregards everything that was saved before. for example: if I play, save and close the application it does not show my previous progress. I wanted her to show my progress from previous moves, like figure 3
problem: if I close the application and then run again, it disregards what I had and shows as if there was nothing in txt, ie it shows 0 hit and 0 error and still says it is the first move. wanted you to show the number of previous moves and the hit and miss on each move.
home screen
when you click to see the result this screen appears
what I wanted to appear
package;
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;
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;
}
}
model package;
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();
}
}
model package;
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 control;
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 control;
import visao.TelaPainel;
public class Main {
public static void main(String[] args) {
ControleTelaPainel ctp = new ControleTelaPainel(new TelaPainel());
}
}
Related: Txt displays duplicate information and Text file is not displayed completely in Jtextarea
– user28595