1 Востаннє редагувалося Zolin_777 (26.06.2017 21:01:14)

Тема: Java FX Вивід тексту в TextArea

Добрий вечір у мене така проблема, коли хочу вивести з текстового файлу текст в TextArea то нічого не получається а коли зі звичайної змінної то виводить, ось кусочок кода моєї програми.

@FXML
    private TextArea vi;
    public void buttontwo(ActionEvent actionEvent) throws IOException {
        File fileread = new File("//home//vova//Документи//2.txt");
        BufferedReader buf = new BufferedReader(new FileReader(fileread));
        int line;

        while((line = buf.read()) != -1){

            vi.setText(String.valueOf((char)line));
            }
        }
    }

2

Re: Java FX Вивід тексту в TextArea

Отже, ви читаєте по символу, перетворюєте цей символ на рядок і замінюєте поточний текст в TextArea на цей рядок, потім читаєте наступний... вже бачите, чому не відображається?

3

Re: Java FX Вивід тексту в TextArea

koala написав:

Отже, ви читаєте по символу, перетворюєте цей символ на рядок і замінюєте поточний текст в TextArea на цей рядок, потім читаєте наступний... вже бачите, чому не відображається?

Так, я зрозумів напевно, а як замінювати рядок? воно і виводить потім в textarea замінений рядок, тобто остінній у файлі, у мене там 8 рядків. Звичайно я пробував через .readLine() зчитувати.

4

Re: Java FX Вивід тексту в TextArea

Так, будь ласка, розберіться спершу із тим, з яким кодом ви працюєте. Нам ваш код потрібен не як приклад того, що ви щось вмієте, а для того, щоб вказати вам на помилки і підказати, як їх виправляти. Якщо ви пишете про три варіанти коду ("зі звичайної змінної", "з текстового файлу текст" і "пробував через .readLine()"), то або наводьте всі три (але цим ви значно знизите ймовірність, що комусь буде цікаво це все розбирати), або не очікуйте пояснень стосовно тих двох, код яких ви не навели.
Ну і якщо з моєї попередньої відповіді ви не зрозуміли тільки

Zolin_777 написав:

як замінювати рядок

то це робиться методом TextArea.setText.

5

Re: Java FX Вивід тексту в TextArea

koala написав:

Так, будь ласка, розберіться спершу із тим, з яким кодом ви працюєте. Нам ваш код потрібен не як приклад того, що ви щось вмієте, а для того, щоб вказати вам на помилки і підказати, як їх виправляти. Якщо ви пишете про три варіанти коду ("зі звичайної змінної", "з текстового файлу текст" і "пробував через .readLine()"), то або наводьте всі три (але цим ви значно знизите ймовірність, що комусь буде цікаво це все розбирати), або не очікуйте пояснень стосовно тих двох, код яких ви не навели.
Ну і якщо з моєї попередньої відповіді ви не зрозуміли тільки

Zolin_777 написав:

як замінювати рядок

то це робиться методом TextArea.setText.

Пробував нічого не виходить. мені потрібно щоб з файу виводило в текстарея всі рядки

6

Re: Java FX Вивід тексту в TextArea

Ну то зберіть весь текст з файлу в один рядок і виводьте його, а не замінюйте вже виведене наступними частинами. Логічно, правда?

7

Re: Java FX Вивід тексту в TextArea

Zolin_777 написав:

Добрий вечір у мене така проблема, коли хочу вивести з текстового файлу текст в TextArea то нічого не получається а коли зі звичайної змінної то виводить, ось кусочок кода моєї програми.

@FXML
    private TextArea vi;
    public void buttontwo(ActionEvent actionEvent) throws IOException {
        File fileread = new File("//home//vova//Документи//2.txt");
        BufferedReader buf = new BufferedReader(new FileReader(fileread));
        int line;

        while((line = buf.read()) != -1){

            vi.setText(String.valueOf((char)line));
            }
        }
    }

Спробуйте так:

@FXML
    private TextArea vi;
    public void buttontwo(ActionEvent actionEvent) throws IOException {
        String content = new String(Files.readAllBytes(Paths.get("//home//vova//Документи//2.txt")));
        vi.setText(content);
    }
Подякували: Zolin_7771

8

Re: Java FX Вивід тексту в TextArea

iovchynnikov написав:
Zolin_777 написав:

Добрий вечір у мене така проблема, коли хочу вивести з текстового файлу текст в TextArea то нічого не получається а коли зі звичайної змінної то виводить, ось кусочок кода моєї програми.

@FXML
    private TextArea vi;
    public void buttontwo(ActionEvent actionEvent) throws IOException {
        File fileread = new File("//home//vova//Документи//2.txt");
        BufferedReader buf = new BufferedReader(new FileReader(fileread));
        int line;

        while((line = buf.read()) != -1){

            vi.setText(String.valueOf((char)line));
            }
        }
    }

Спробуйте так:

@FXML
    private TextArea vi;
    public void buttontwo(ActionEvent actionEvent) throws IOException {
        String content = new String(Files.readAllBytes(Paths.get("//home//vova//Документи//2.txt")));
        vi.setText(content);
    }

Дякую мені треба було ще щоб по натисненню на кнопку перекидало на наступний документ, уже написав ось що получилось

 int counter = 1;
    @FXML
    private TextArea vi;
    public void buttontwo(ActionEvent actionEvent) throws IOException {

        while(true) {

            String start = "//home//vova//Документи//";
            String end = ".txt";

            String finish = start + counter + end;
            counter = counter + 1;
            File fileread = new File(finish);
            BufferedReader buferedfile = new BufferedReader(new FileReader(fileread));
            String line;
            String line2 = "";
            while ((line = buferedfile.readLine()) != null) {
                line2 = line2 + line + "\n";
                vi.setText(line2);
            }
            return;
        }}

*YAHOO*