2
I put it up to show you the packages, so you can tell me if I’m making proper use of the MVC If I save in txt:
[Maria;32] ; [Joao;44] e [Luna,12]`
he just shows me Nome: Maria Idade 32
and Nome Joao
, the rest he ignores.
Class Filing cabinet
package model;
public class Arquivo {
public static String Read(String Caminho){
String conteudo = "";
try {
FileReader arq = new FileReader(Caminho);
BufferedReader lerArq = new BufferedReader(arq);
String linha="";
try {
linha = lerArq.readLine();
while(linha!=null){
linha = lerArq.readLine();
conteudo += linha+"\r\n";
}
arq.close();
return conteudo;
} catch (IOException ex) {
System.out.println("Erro: Não foi possível ler o arquivo!");
return "";
}
} catch (FileNotFoundException ex) {
System.out.println("Erro: Arquivo não encontrado!");
return "";
}}
public static boolean Write(String Caminho,String Texto){
try {
FileWriter arq = new FileWriter(Caminho,true);
PrintWriter gravarArq = new PrintWriter(arq);
gravarArq.println(Texto);
gravarArq.close();
return true;
}catch(IOException e){
System.out.println(e.getMessage());
return false;
}
}}
Class Modeller
package model;
public class ModelAluno {
String nome;
String idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getIdade() {
return idade;
}
public void setIdade(String idade) {
this.idade = idade;
}
public boolean persisitir(){
return true;
}
}
Class Viewnomeity
package visao;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextPane;
public class ViewNomeIdade extends JFrame {
public JPanel contentPane;
public JTextField txtNome;
public JTextField txtIdade;
public JButton btSalvar;
private JButton btnExibir;
public ViewNomeIdade() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 446, 139);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNome = new JLabel("Nome");
lblNome.setBounds(10, 11, 46, 14);
contentPane.add(lblNome);
JLabel lblIdade = new JLabel("Idade");
lblIdade.setBounds(10, 50, 46, 14);
contentPane.add(lblIdade);
txtNome = new JTextField();
txtNome.setBounds(60, 8, 86, 20);
contentPane.add(txtNome);
txtNome.setColumns(10);
txtIdade = new JTextField();
txtIdade.setBounds(60, 47, 86, 20);
contentPane.add(txtIdade);
txtIdade.setColumns(10);
btSalvar = new JButton("Salvar");
btSalvar.setBounds(57, 77, 89, 23);
contentPane.add(btSalvar);
btnExibir = new JButton("Exibir");
btnExibir.setBounds(172, 77, 89, 23);
contentPane.add(btnExibir);
}
public JTextField getTxtNome() {
return txtNome;
}
public void setTxtNome(JTextField txtNome) {
this.txtNome = txtNome;
}
public JTextField getTxtIdade() {
return txtIdade;
}
public void setTxtIdade(JTextField txtIdade) {
this.txtIdade = txtIdade;
}
public JButton getBtSalvar() {
return btSalvar;
}
public void setBtSalvar(JButton btSalvar) {
this.btSalvar = btSalvar;
}
public JButton getBtnExibir() {
return btnExibir;
}
}
Class Viewexibir
package visao;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
public class ViewExibir extends JFrame {
private JPanel contentPane;
JTextArea textArea;
public ViewExibir() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 301, 203);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
textArea = new JTextArea();
textArea.setBounds(62, 11, 146, 127);
contentPane.add(textArea);
}
public JTextArea getTextArea() {
return textArea;
}
public void setTextArea(JTextArea textArea) {
this.textArea = textArea;
}
}
Class Controlenomeidade
package controle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import model.Arquivo;
import model.ModelAluno;
import visao.ViewExibir;
import visao.ViewNomeIdade;
public class ControleNomeIdade implements ActionListener{
ViewNomeIdade v ;
ViewExibir vi ;
ModelAluno m = new ModelAluno();
String ArqConfig = "salvar.txt";
public ControleNomeIdade(ViewNomeIdade v, ViewExibir vi) {
this.v = v;
this.vi = vi;
v.getBtSalvar().addActionListener(this);
v.getBtnExibir().addActionListener(this);
v.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == v.getBtSalvar()){
m.setNome(v.getTxtNome().getText());
m.setIdade(v.getTxtIdade().getText());
String print = m.getNome()+";"+m.getIdade();
if(Arquivo.Write(ArqConfig,print))
System.out.println("Arquivo salvo com sucesso!");
else
System.out.println("Erro ao salvar o arquivo!");
}
else if(e.getSource() == v.getBtnExibir()){
String conteudo = Arquivo.Read(ArqConfig);
String c1 = conteudo.split(";")[0];
String c2 = conteudo.split(";")[1];
System.out.println("Nome: " + c1 + "\nIdade: " + c2);
vi.getTextArea().append("Nome: " + c1 + "\nIdade: " + c2);
vi.setVisible(true);
}
}
}
Main class
package controle;
import visao.ViewExibir;
import visao.ViewNomeIdade;
public class Principal {
public static void main(String[] args) {
new ControleNomeIdade(new ViewNomeIdade(), new ViewExibir());
}
}
This code is not executable. Please add a [mcve] so that it is possible to test the code to simulate the problem.
– user28595
But it is executable: only missing``public Static void main(String[] args) { new Controlsoftness(new Viewnomeity(), new Viewexibir()); }
– Gabriella