Append .txt Datei in eine TextArea im Java
Ich habe gesehen eine Menge von websites, die beschreiben, wie anfügen von text in eine textarea
, aber gibt es eine Möglichkeit zum abrufen von Daten aus einem ganzen .txt-Datei und zeigen Sie Sie in der textarea?
Ich habe das Spiel mit verschiedenen Dingen, um in eine Zeile wie diese:
outputTextArea.append(????);
Aber kein Glück noch.
Super neues zu java und nicht so gut mit der Terminologie, aber ich hoffe, erklärte ich meine Frage.
EDIT: Es wird nicht lassen Sie mich Antworten auf meine Frage, also ich werde einfach um es hier oben.
Ich bin mit JTextArea, aber ich denke, ich bin ein wenig überfordert. Ich bin mir nicht ganz sicher, was ich sehe, aber ist es das, was Sie redeten?
public FileReader(String fileName);
Habe ich dieses so weit.
FileWriter fwriter = new FileWriter("BigMoneys.txt", true);
PrintWriter outputFile = new PrintWriter(fwriter);
for (int year = 1; year<= 10; year++)
{
amount = principal * Math.pow(1.0 + rate, year);
outputFile.append( year + "\t" + moneyFormat.format(amount) + "\n");
}
outputFile.close();
JOptionPane.showMessageDialog(null, outputTextArea, "Compound Interest", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
Den rest dieses wurde bedeckt in meinem lehrbuch ziemlich gut, und alles macht anständige Sinn, aber ich habe gerade überprüft, und das Buch ist nichts über FileReader.
Alles was ich weiß ist, dass ich verwenden sollte, was in outputFile und fügen es outputTextArea. Ich bin ehrlich gesagt nicht versuchen, um Sie zu tun, meine Hausaufgaben für mich, ich bin nur wirklich, wirklich verloren.
Also, wenn ich jetzt verwenden soll, die Zeile oben, könnte ich dies tun?
FileReader(String fwriter)
EDIT2: Dies ist, was ich habe, so weit. Bitte sagen Sie mir, wenn ich auf der rechten Spur.
import java.util.Scanner;
import java.io.*;
import java.text.NumberFormat; //class for numeric formatting
import java.util.Locale; //class for country-specific information
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Interest3
{
public static void main(String[] args) throws IOException
{
double amount, //amount of deposit at end of each year
principal, //initial amount before interest
rate; //rate of interest
String input;
String filename;
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter the filename: ");
filename = keyboard.nextLine();
//create NumberFormat for currency in US dollar format
NumberFormat moneyFormat = NumberFormat.getCurrencyInstance( Locale.US );
//create JTextArea to display output
JTextArea outputTextArea = new JTextArea();
input = JOptionPane.showInputDialog("Please enter Principal: ");
principal = Double.parseDouble(input);
input = JOptionPane.showInputDialog("Please enter Interest Rate (Format: 0.00) ");
rate = Double.parseDouble(input);
outputTextArea.setText("Year\tAmount on deposit\n");
//open new file for writing
PrintWriter outputFile = new PrintWriter(filename);
//calculate amount on deposit for each of ten years
for (int year = 1; year<= 10; year++)
{
amount = principal * Math.pow(1.0 + rate, year);
//append one line of text to outputTextArea
outputFile.append( year + "\t" + moneyFormat.format(amount) + "\n");
}
outputFile.close();
//open file for reading
File file = new File(filename);
FileReader rd = new FileReader(file);
outputTextArea.append(rd);
//display results
JOptionPane.showMessageDialog(null, outputTextArea, "Compound Interest", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
Ich habe einen Fehler auf der Zeile mit outputTextArea.append(rd);
sagt, dass "append(java.lang.String) in javax.swing.JTextArea nicht angewandt werden kann (java).io.FileReader)", also bin ich offensichtlich etwas fehlt da unten.
EDIT3: Uuuund ich glaube ich habe es! Vielen Dank für jedermanns Hilfe. Fall geschlossen, gute Nacht 🙂
- Wenn Sie bereit sind, verwenden Sie eine
JEditorPane
finden Sie unter dieses kurze Beispiel. - Ich habe nur java zu lernen für 5 Wochen, also Nein, ich glaube nicht, dass ich bereit bin, für das, aber ich werde auf jeden Fall bookmarken. Es werde wahrscheinlich in handliches kommen, irgendwo auf der ganzen Linie. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da dies nicht ein "plz kann ich haz de codez" vor Ort bin ich nicht zu geben, code zu tun. Stattdessen, hier ein paar Hinweise:
PS vielleicht möchten Sie erwägen JTextArea und Swing anstelle der einfachen AWT.
Siehe auch:
Wie zu Verwenden Text-Bereiche
Zeichen-Streams
FileReader read = new FileReader("BigMoneys.txt");
? Könnte ich das unter meinem PrintWriter?Warum schreibst du nicht den text in die JTextArea zur gleichen Zeit, schreiben Sie es auf einer Datei:
Dass arbeiten soll.
Bitte beachten Sie jedoch, dass dies nicht der beste Weg, um design einer Anwendung, die erfordern würde, teilen Sie Ihre Anwendungen in Schichten, aber ich will nicht in diese geben, da Sie offensichtlich nicht genügend wissen über Java zu gehen, weiter in diese Richtung.
Lesen Sie die Datei, und speichern Sie deren Inhalt in einen String, und dann fügen Sie die Zeichenfolge in das Textfeld.
Finden Sie keine shortcut-Methode in (J)TextArea zum Lesen der Datei für Sie, denn das ist nicht sein Geschäft. Könnte der text kommen aus einer Datei, einer Datenbank, einer socket-Verbindung oder sonst irgendwo. Das ist nicht die Verantwortung von den Textbereich, um den text zu Lesen von all diesen potenziellen Standorten. Seine Aufgabe ist es, den text anzuzeigen, der Sie ihm geben.
So Lesen Sie die text-Datei selbst. Finden Sie die Java-tutorial über character-streams.
Konzentriert sich nur auf das problem "liest Inhalt aus einer Datei, und legen Sie Sie in eine JTextArea", hier ist was Sie brauchen:
Beachten Sie, dass ich sue eine
BufferedReader
so dass man die Datei Lesen Zeile pro Zeile, anstatt es zu Lesen, vollständig in einer Zeit, die in der Tat dazu führen würde, bis hin zu komplizierten code.Enter the filename: asdf Exception in thread "main" java.io.FileNotFoundException: asdf (The system cannot find the file specified) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120) at java.io.FileReader.<init>(FileReader.java:55) at Interest3.main(Interest3.java:53) Process completed.
Können Sie das EditorKit, dies zu tun für Sie:
Gibt es eine JProgressBar demo enthalten, die in der JDK (im Ordner demo/jfc/SwingSet2) dem scheint zu entsprechen, was Sie wollen. Source-code auch zur Verfügung zu stellen.