Импорт всего текстового файла в JFrame - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в Java. Я создаю простую программу для чтения текстового файла и помещения его содержимого в текстовую область в кадре качания java. Мой файл выглядит так:

Hello World!
What a beautiful World!

Для кадра java я создал кнопку и действие для кнопки, чтобы импортировать текст из текстового файла в текстовую область при нажатии. Проблема в том, что программа читает только вторую строку текстового файла «Какой прекрасный мир!» Я знаю, что это, вероятно, крошечная глупая ошибка, но я не мог ее понять. вот мой код для класса

import java.io.*;
import java.util.*;

public class JavaGui {

    Scanner scnr;
    static String fileText;

    public void openfile(){
        try{
            scnr = new Scanner(new File("C:\\Users\\13195\\New JavaGui\\abc.txt"));
        }
        catch (FileNotFoundException e){
            System.out.println("File Not Found. Try Again!");
        }
    }

    public void readfile(){
         while (scnr.hasNextLine()){
             fileText = scnr.nextLine();
             System.out.println(fileText);
         }
        scnr.close();
    }
}

А вот класс с основным методом:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GuiFrame implements ActionListener {
    private JTextArea jtxt = new JTextArea(30, 30);
    private JFrame fr = new JFrame("Framework");
    private JButton btn = new JButton("View Text");

    static String t;

    public GuiFrame(){
        fr.add(jtxt);
        btn.addActionListener(this);
        fr.add(btn);

        //Frame
        fr.setLayout(new FlowLayout());
        fr.setSize(50,50);
        fr.setVisible(true);
    }

    public static void main(String[] args) {
        new GuiFrame();

        JavaGui fr = new JavaGui();
        fr.openfile();
        fr.readfile();

        t = JavaGui.fileText;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == btn){
            jtxt.setText(t);
        }
    }
}
...