Bom dia Pessoal,
To com um problema aqui, eu tenho uma jTable em que o usuario do sistema irá preencher ela e clicar em um button pra salvar estes dados em um arquivo txt.
Porém eu quero que quando ele clique em salvar e o sistema salve o arquivo texto a tabela continue mostrando o que ele fez.
O que tem me ocorrido de erro é o seguinte quando eu salvo e ele me mostra a tabela, a mesma fica toda travada. Não consigo mais clicar em nada do jFrame muito menos editar a tabela.
Vou postar o bloco de código do salvar pra voces olharem.
public void Gravar(String texto){
String lineSeparator = (String) java.security.AccessController.doPrivileged(new sun.security.action.GetPropertyAction("line.separator"));
String nomearq;
DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
String conteudo = jTextField1.getText().toString();
String amigoleo = jTextField2.getText().toString();
String data = jTextField3.getText().toString();
String nomearquivo = "D:/";
String primeiralinha = data;
primeiralinha+= ";" .concat(conteudo);
primeiralinha+= ";".concat(amigoleo);
nomearquivo += data;
nomearquivo += pegaCodigoMaterial();
nomearquivo += ";".concat(conteudo);
nomearquivo +=";".concat(amigoleo);
//nomearquivo+=".txt";
salvar a = new salvar(nomearquivo);
String name = a.narq();
nomearquivo+=".txt";
try{
StringBuilder b;
String local = name;
FileWriter x = new FileWriter(local,true);
String rot;
ArrayList<StringBuilder> linhas = new ArrayList<StringBuilder>();
DefaultTableModel modelo2 = (DefaultTableModel)jTable1.getModel();
String arme;
for(int i = 0; i< modelo.getRowCount(); i++){
b = new StringBuilder();
for(int j = 0; j < modelo.getColumnCount(); j++){
if(j==3){
if(modelo.getValueAt(i, j)!=null){
}
}
//inicio do if pegando o material
//fim do if pegando o material
//inicio do if de validação dos campos
if(j==4){
boolean v = true ;
boolean f = false;
if (modelo.getValueAt(i,j)!= null){
String mate = jComboBox4.getSelectedItem().toString();
String[] cod = mate.split(";");
arme = cod[1];
b.append(arme);
b.append(";");
if(modelo.getValueAt(i, j).equals(v)){
String temp = "1";
modelo.setValueAt(temp, i,j);
}
if(modelo.getValueAt(i,j).equals(f)){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if(modelo.getValueAt(i,j)== null){
String temp = "0";
modelo.setValueAt(temp,i,j);
}
}// fim do if 4
// ate a 4 coluna tudo validado corretamente!
// inicio do if 5
if (j==5){
boolean v = true;
boolean f = false;
if(modelo.getValueAt(i, j)!= null){
if(modelo.getValueAt(i, j).equals(v)){
String temp = jComboBox3.getSelectedItem().toString();
modelo.setValueAt(temp, i, j);
}
if(modelo.getValueAt(i, j).equals(f)){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if (modelo.getValueAt(i, j) == null){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if (j==6){
boolean v = true;
boolean f = false;
if(modelo.getValueAt(i, j)!= null){
if(modelo.getValueAt(i, j).equals(v)){
String temp = jComboBox3.getSelectedItem().toString();
modelo.setValueAt(temp, i, j);
}
if(modelo.getValueAt(i, j).equals(f)){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if (modelo.getValueAt(i, j) == null){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if (j==7){
boolean v = true;
boolean f = false;
if(modelo.getValueAt(i, j)!= null){
if(modelo.getValueAt(i, j).equals(v)){
String temp = jComboBox3.getSelectedItem().toString();
modelo.setValueAt(temp, i, j);
}
if(modelo.getValueAt(i, j).equals(f)){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if (modelo.getValueAt(i, j) == null){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if (j==8){
boolean v = true;
boolean f = false;
if(modelo.getValueAt(i, j)!= null){
if(modelo.getValueAt(i, j).equals(v)){
String temp = jComboBox3.getSelectedItem().toString();
modelo.setValueAt(temp, i, j);
}
if(modelo.getValueAt(i, j).equals(f)){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
if (modelo.getValueAt(i, j) == null){
String temp = "0";
modelo.setValueAt(temp, i, j);
}
}
// fim do if 5
//fim do if de validação dos campos
b.append(modelo.getValueAt(i,j));
b.append(";");
}
linhas.add(b);
// JOptionPane.showMessageDialog(rootPane, linhas);
}
x.write(primeiralinha + lineSeparator);
for(StringBuilder bb: linhas){
x.write(bb.toString());
x.write(lineSeparator);
//fim///////////
//JOptionPane.showMessageDialog(rootPane, "oi");
}
x.close();
//jLabel6.setText(local);
//JOptionPane.showMessageDialog(null,"Arquivo gravado com sucesso");
//modelo.setNumRows(0);
//jTextField1.setText("");
//jTextField2.setText("");
//jTextField3.setText("");
//jPanel1.setVisible(false);
//jPanel3.setVisible(false);
//jComboBox3.setSelectedIndex(0);
//jComboBox4.setSelectedIndex(0);
statusSalvar = 1;
jLabel16.setVisible(true);
jButton7.setVisible(false);
jTable1.repaint();
}
catch(Exception e){
e.printStackTrace();
}
jLabel16.setText("Arquivo Salvo com sucesso!");
}
esse é o metodo que chamo no button… Ele está salvando certo porem esta última label que eu seto pra mostrar que o arquivo foi salvo ja demora demais pra ser mostrado, por que trava tudo…