27. december 2007 - 17:44
Der er
25 kommentarer og 1 løsning
Tekst fra .txt-dokument til JTextArea. Hvordan?
Hej eksperter.. Jeg er ved at lave et program, der blandt andet skal kunne importere en tekst fra et .txt-dokument til et JTextArea ved et klik på en knap. Altså, når knappen aktiveres, skal teksten indlæses. Hvordan skal jeg sætte en kode op til dette? - Gerne så simpelt som muligt, så jeg forstår, hvad der sker hele vejen :)
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
27. december 2007 - 17:50
#1
i din actionPerformed: dittextarea.setText(load(dittextfield.getText()); og: public static String load(String filename) { StringBuffer sb = new StringBuffer(""); try { BufferedReader in = new BufferedReader(new FileReader(filename)); String line; while((line = in.readLine()) != null) { sb.append(line); sb.append("\r\n"); } } catch (IOException e) { // et eller andet } return sb.toString(); }
28. december 2007 - 10:20
#2
1) Hvad skal der stå i stedet for "dittextfield"? 2) Hvor skal koden under "og:" stå?
28. december 2007 - 14:28
#3
re 1) Jeg antog at filnavnet stid i et JTextField. re 2) Den metode skal så anbringes i samme klasse som actionPerformed.
28. december 2007 - 14:48
#4
Ja, jeg fandt netop ud af det.. Det var det med JTextField, der forvirrede.. Har bare skrevet: tekst.setText(load("filensplacering")); Det vil nemlig altid være den samme fil, der skal åbnes, nemlig en telefonliste. Hvis brugeren nu har redigeret i denne telefonliste i JTextArea'et, efter den er indlæst, kan jeg så ikke få programmet til at gemme rettelserne i (overskrive) filen, ved tryk på en knap jeg kalder "Gem"?
28. december 2007 - 14:59
#5
public void save(String filename) { try { PrintWriter pw = new PrintWriter(new FileWriter(filename)); pw.println(dittextarea.getText()); pw.close(); } catch (FileNotFoundException ex) { } catch (IOException ex) { } }
28. december 2007 - 15:01
#6
Hvad skal der så stå i knappen?
28. december 2007 - 15:17
#7
if(ev.getSource() == savebtn) { save(filnavn); }
28. december 2007 - 15:27
#8
den fik jeg ikke fat i.. skal det ikke stå i min: private void b2ActionPerformed(java.awt.event.ActionEvent evt) { } ?? - Sorry, er nybegynder med stort N :)
28. december 2007 - 15:31
#9
-Underforstået at b2 er min "Gem"-knap..
28. december 2007 - 15:41
#10
nej
28. december 2007 - 15:42
#11
private void actionPerformed(java.awt.event.ActionEvent evt) { if(evt.getSource() == b2) {
28. december 2007 - 15:58
#12
vil det alt i alt sige: private void actionPerformed(java.awt.event.ActionEvent evt) { if(ev.getSource() == b2) { save(tlf.txt); } } ??? Der kommer to fejl. 1) cannot find symbol symbol: variable ev location: .... 2) cannot find symbol symbol: variable tlf location: .... Hvad har jeg skrevet forkert?
28. december 2007 - 16:06
#13
ok 2) fik jeg selv rettet.. 1) ved jeg ikke umiddelbart, hvad jeg skla gøre ved..
28. december 2007 - 16:25
#14
Hmm.. nu ser det ud til at virke.. Den gemmer dog ikke noget, når jeg trykker på knappen. For selve min knap er koden: b2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { b2ActionPerformed(evt); } }); og: private void b2ActionPerformed(java.awt.event.ActionEvent evt) { } Og desuden står der: private void actionPerformed(java.awt.event.ActionEvent evt) { if(evt.getSource() == b2) { save("C:/..... + TF.getText() + ".txt"); } } public void save(String filename) { try { PrintWriter pw = new PrintWriter(new FileWriter(filename)); pw.println(tekst.getText()); pw.close(); } catch (FileNotFoundException ex) { } catch (IOException ex) { } } Er der nogle fejl i det?
28. december 2007 - 16:27
#15
Jeg besluttede mig alligevel for at bruge et JTextField kaldet TF, hvis du skulle undre dig :-)
28. december 2007 - 16:37
#16
fejl #1 er evt versus ev
28. december 2007 - 16:38
#17
Jeg forstår ikke helt din kode ! Enten er det: b2.addActionListener(this); og private void actionPerformed(java.awt.event.ActionEvent evt) { if(evt.getSource() == b2) { save("C:/..... + TF.getText() + ".txt"); } } eller b2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { save("C:/..... + TF.getText() + ".txt"); } });
28. december 2007 - 16:45
#18
Ok, jeg havde blandet det sammen. Jeg har valgt denne metode: b2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { save("C:/..... + TF.getText() + ".txt"); } }); Nu skriver den så: cannot find symbol symbol : method save(java.lang.String) location : ....
28. december 2007 - 17:37
#19
Så kopier indholdet af save metoden ind i.s.f. save kaldet.
28. december 2007 - 17:45
#20
Hvad er indholdet af save-metoden? -Jeg har smidt lidt flere point i tråden..
28. december 2007 - 17:57
#21
copy paste fra første { til sidste }
28. december 2007 - 18:00
#22
Jamen hvor finder jeg save-metoden??
29. december 2007 - 10:12
#23
b2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ??? } }); Hvad skal der stå i stedet for "???"? Kan jeg ikke få koden "ordret", så det ikke kan misforstås? :/
29. december 2007 - 14:59
#24
Ej, det var jeg længe om at fatte.. Jeg kortsluttede lige. Nu virker det. Den indlæser og gemmer som den skal. Det eneste jeg ikke er helt med på nu er, hvordan lode-metoden kan finde filen ved koden: (String filename) Ved save-metoden er jeg nød til at skrive stien til filen.. Det ser mere elegant ud, at der bare står "filename".. Kan det arrangeres? Hvis ikke, så bare smid et svar. Du har snart arbejdet nok for denne tråd :)
29. december 2007 - 16:28
#25
Du har to muligheder: 1) enten er fil navnet en konstant i load og save 2) filnavnet er et argument til load og save og de kaldes med en konstant Da vi vel endte med at have putte save koden ind i den action listener, så er #2 nok lidt svær. Men hvis du bruge this som action listener og testede på hvilken button der var klikket i actionPerformed, så kunne du have en save metode med argument.
29. december 2007 - 16:28
#26
og et svar
Kurser inden for grundlæggende programmering