Problem z JTextArea i zapisem ;/

0

Mam dane pola Test Area:

JTextArea pole_cel=new JTextArea();
pole_cel.setBounds(150,105,606,70);
panel.add(pole_cel);

Jest ich wile dla przykładu jedno, Pole szerokie na 4 linijki tekstu. dane z pola trafiją jako atrybut obiektu w liście obiektów:

zlecenia.add(new Zlecenie(liczba_zlecen_str2,data_systemowa,aktualny_pracownik,(String) serwisuje.getSelectedItem(),data_zakończenia,(String) combi2.getSelectedItem(), (String) status.getSelectedItem(),pole_cel.getText(),""));

Mam tez klase odpowiadająca za zapis odczyt z pliku:

package firma3;
import javax.swing.;
import java.util.
;
import java.io.;
import java.awt.event.
;
import java.awt.;
import java.awt.event.
;
import javax.swing.JFrame;
import java.awt.Graphics;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.ArrayList;

public final class EmployeeListDecorator4 {
public static boolean saveList(Collection<Zlecenie> zlecenia, String fileName) {
PrintWriter writer = null;
try{
writer = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
for (Zlecenie zlecenie : zlecenia)
{
writer.println(zlecenie.get_numer());
writer.println(zlecenie.get_data_przyjecia());
writer.println(zlecenie.get_przyjal());
writer.println(zlecenie.get_serwisuje());
writer.println(zlecenie.get_data_realizacji());
writer.println(zlecenie.get_apteka());
writer.println(zlecenie.get_status());
writer.println(zlecenie.get_cel());
writer.println(zlecenie.get_rozwiazanie());
}
return true;
} catch(IOException exc) {
exc.printStackTrace();
return false;
} finally {
if(writer != null) {
writer.flush();
writer.close();
}
}
}

    public static Collection<Zlecenie> readList(String fileName) {
            BufferedReader reader = null;
            try {
                    reader = new BufferedReader(new FileReader(new File(fileName)));
                    ArrayList<Zlecenie> list = new ArrayList<Zlecenie>();
                    String line  = null;
                    String line1 = null;
                    String line2 = null;
                    String line3 = null;
                    String line4 = null;
                    String line5 = null;
                    String line6 = null;
                    String line7 = null;
                    String line8 = null;
                    while((line = reader.readLine()) != null)
                    {
                           line1=reader.readLine();
                           line2=reader.readLine();
                           line3=reader.readLine();
                           line4=reader.readLine();
                           line5=reader.readLine();
                           line6=reader.readLine();
                           line7=reader.readLine();
                           line8=reader.readLine();
                         
                           list.add(new Zlecenie(line,line1,line2,line3,line4,line5,line6,line7,line8));
                    }
                    return list;
            } catch(IOException exc) {
                    exc.printStackTrace();
                    return null;
            } finally {
                    if(reader != null) {
                            try {
                                    reader.close();
                            } catch (IOException e) {
                                    e.printStackTrace();
                            }
                    }
            }
    }

}
//---------------------------------------------------------------------------------------------------------

Wszystko działa fajnie dproblem pojawia się gdy w polu text area (tym dany na gorze) wcisne enter aby przjsc do nastepnej lini. widac zostaje wtedy zapisany znacznik i wszystko mi sie przestawia o odczycie . Czyli w pliku zamiastst zapisac sie tak

1
2
3
4
5

to zapisuje sie tak
1
2
3
456<- tyle razy kliknelme enter w polu text area ;/
7

Co zrobić aby w polu mogl miec 4 linijki tekst ale zapisywane to byloby w jednej lini w pliku tak abymmogl to normalnie odczytac Bez nacznikow

0

Moze powinienem azyc jakiegos bufora tak aby on widzial ten tekst z pola jako jeden ciag znakow a nie jako 4 linijki ?

0

pole_cel.setLineWrap(true); zawijanei tekstu bez znaku \n

0

Ok teraz zawija tekst bez znaku \n Znak jednak pojawia się po wciśnięciu ENTER aby przejśc do następnej linii. Czy jest możliwość zablokowania przechodzenia do następnej lini po wciśnięciu ENTER?. Bądz wciskanei ENTER bez znaku \n?

0

A nie możesz po prostu wyciąć tych Enterów?

  pole_cel.getText().replace("\n\r","");;
  //lub [i] tak
  pole_cel.getText().replace("\n","");
0

Super dział dobry pomysł ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1