Boa tarde!
Sou nova tanto em programação quanto no Fórum e estou enfrentando esse seguinte erro, alguém poderia dar-me uma luz?
Códigos:
public class ControleTermo {
String caminho;
boolean validar2;
public ControleTermo() {
this.caminho="termo.txt";
this.validar2=false;
}
public boolean VerificarTermo(String codigo, String termo, String significado, String fonte) {
ArrayList<DicTermo> ValidaTermoExiste = LeituraTermo();//
for (int i = 0; i < ValidaTermoExiste.size(); i++) {
validar2 = ValidaTermoExiste.get(i).getTermo().equals(termo)
&& ValidaTermoExiste.get(i).getSignificado().equals(significado)
&& ValidaTermoExiste.get(i).getFonte().equals(fonte);
}
return validar2;
}
public ArrayList<DicTermo> LeituraTermo() {
ArrayList<DicTermo> listaTermo = new ArrayList();
DicTermo termo;
try (BufferedReader bR = new BufferedReader(new FileReader("termo.txt"))) {
while (bR.ready()) {
String linha = bR.readLine();
String campos[] = linha.split(";");
termo = new DicTermo();
termo.setCodigo(campos[0]);
termo.setTermo(campos[1]) ;
termo.setSignificado(campos[2]);
termo.setFonte(campos[3]);
System.out.println(listaTermo);
listaTermo.add(termo);
}
} catch (Exception e) {
e.printStackTrace();
}
return listaTermo ;
}
public void escreverLinha(String codigo, String termo, String significado, String fonte) {
if(termo.length()>=2&&termo.length()<=30
&& significado.length()>=2 && significado.length()<=30
&&fonte.length()>=10 && fonte.length()<=30){
String linha=(codigo + “;” + termo + “;” + significado + “;” + fonte);
//System.out.println(linha);
try (BufferedWriter bW = new BufferedWriter(new FileWriter("termo.txt", true))) {
bW.write(linha);
bW.newLine();
// System.out.println(linha);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao gravar no arquivo","ERRO",JOptionPane.ERROR_MESSAGE);
}
}else{
JOptionPane.showMessageDialog(null,"Verifique a quantidade de caracteres:\nTERMO: de 2 a 200 caracteres\nFONTE: de 20 a 500 caracteres\nSIGNIFICADO: de 2 a 600 caracteres","ERRO",JOptionPane.ERROR_MESSAGE);
}
}
public void RemoverTermo(String codigo, String termo, String significado, String fonte) {
String linhaDadosRemover = codigo + ";" + termo+ ";" + significado+ ";" + fonte;
try (BufferedReader bRremover = new BufferedReader(new FileReader("termo.txt"))) {
String linha = bRremover.readLine();
ArrayList<String> removerTermo = new ArrayList();
while (linha != null) {
if (linha.equals(linhaDadosRemover) == false) {
removerTermo.add(linha);
}
linha = bRremover.readLine();
}
FileWriter fw = new FileWriter(caminho);
fw.close();
FileWriter fw2 = new FileWriter(caminho, true);
BufferedWriter bw = new BufferedWriter(fw2);
for (int i = 0; i < removerTermo.size(); i++) {
bw.write(removerTermo.get(i));
bw.newLine();
}
bw.close();
fw2.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao remover termo","ERRO",JOptionPane.ERROR_MESSAGE);
}
}
public void AlterarTermo(String linhaAntiga, String linhaAtual) {
if (!linhaAntiga.equals(linhaAtual)) {
try (BufferedReader bRAlterar = new BufferedReader(new FileReader("termo.txt"))) {
String linha = bRAlterar.readLine();
ArrayList<String> alterarTermo = new ArrayList();
while (linha != null) {
alterarTermo.add(linha);
linha = bRAlterar.readLine();
}
for (int i = 0; i < alterarTermo.size(); i++) {
if (alterarTermo.get(i).equals(linhaAntiga)) {
alterarTermo.set(i, linhaAtual);
}
}
try (BufferedWriter bW = new BufferedWriter(new FileWriter("termo.txt"))) {
for (int i = 0; i < alterarTermo.size(); i++) {
bW.write(alterarTermo.get(i));
bW.newLine();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao gravar no arquivo","ERRO",JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao Alterar o termo.","ERRO",JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Nenhum dado foi alterado.","ERRO",JOptionPane.ERROR_MESSAGE);
}
}
public int idTermo() {
int id;
ArrayList<DicTermo> idTermo = LeituraTermo();
id = Integer.parseInt(idTermo.get(idTermo.size() - 1).getCodigo()) + 1;
return id;
}
}
A outra classe da Tela
ControleTermo tabelatermo = new ControleTermo();
TelaCadastro telaCad = new TelaCadastro();
private int index;
private void mostrarTableTermo() {
DefaultTableModel modelTermo = (DefaultTableModel) tabelaDic.getModel();
Object rowData[] = new Object[4];
ArrayList<DicTermo> listaTermo = tabelatermo.LeituraTermo();
for (int i = 0; i < listaTermo.size(); i++) {
rowData[0] = listaTermo.get(i).getCodigo();
rowData[1] = listaTermo.get(i).getTermo();
rowData[2] = listaTermo.get(i).getSignificado();
rowData[3] = listaTermo.get(i).getFonte();
modelTermo.addRow(rowData);
}
}
E também para comentar que a jtable é povoada por um arquivo txt
Obrigado desde já!




