Как получить текст из JTextArea? - PullRequest
1 голос
/ 16 марта 2011

У меня есть JTextArea на JFrame и JButton.

Когда пользователь вводит символы в textArea JTextArea и нажимает кнопку, я хочу, чтобы информация сохранялась в текстовом файле.

JTextArea textArea = new JTextArea(2, 20);
    textArea.setLineWrap (true);

    thehandler4 handler4 = new thehandler4(); // next button 
    button4.addActionListener(handler4);


    private class thehandler4 implements ActionListener{ //next button  
        public void actionPerformed(ActionEvent event){


        PrintWriter log = null;
        try {

                FileWriter logg =new FileWriter("logsheet.txt",true);
                log = new PrintWriter(logg);

                log.println("Quick Notes: "+textArea);
                log.close();
            } catch( Exception y ) {    y.printStackTrace();    } 

    }}

Но когда я открываю logsheet.txt, я ничего не вижу. его ноль. есть ли функция, мне нужно, как textArea.getText (); Я попробовал это, но я получаю ошибку.

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Полагаю, ваша проблема в том, что ваша текстовая область определена как переменный класс и локальная переменная.Ваш ActionListener обращается к переменной класса, которая имеет значение null.

//JTextArea textArea = new JTextArea(2, 20); // this is wrong, you don't want a local variable
textArea = new JTextArea(2, 20);

Кроме того, использование метода textArea.write (...) является правильным способом сделать это.Вы не хотите использовать метод getText (), потому что такой подход может привести к тому, что в строке будут содержаться неправильные символы новой строки.

0 голосов
/ 16 марта 2011

Вместо этого вы можете сделать следующее:

JTextArea textArea = new JTextArea(2, 20);
FileWriter logg =new FileWriter("logsheet.txt",true);
textArea.write(logg);

Метод write () позволяет записывать текст из текстовой области в устройство записи.

...