Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу вывести текст из файла в TextArea 
V
    Опции темы
check
Дата 13.9.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: нет
Всего: 23



При открытии файла в диалоге выбора выдается такой exception
Код

Exception on thread "AWT-EventQueue-0" java.lang.NullPointerException

Точнее говоря это происходит при попытке вывести содержимое файла
в textarea. 
Код

txt.append(str+"\n");

А в консоль всё нормально выводится.
Не знаю куда копать, поэтому выкладываю код целиком.
Код

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class choos extends JFrame
{
   JTextArea txt;
   File currentFile;

   choos() {

     setSize(500,250);
     Container c = getContentPane();
     JPanel base = new JPanel();
     JPanel p1   = new JPanel();
     JPanel p2   = new JPanel();
     JButton b1 = new JButton("Открыть");
     JButton b2 = new JButton("Записать");
     p1.add(b1);
     p1.add(b2);
     base.add(p1);
     JTextArea txt = new JTextArea(10,40);
     JScrollPane scrl = new JScrollPane(txt, 

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
     p2.add(scrl);
     base.add(p2);
     c.add(base);

     b1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            open();
         }
     });
    
WindowListener wndCloser = new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    };
    addWindowListener(wndCloser);


     setVisible(true);
   }

  public void open() {

    JFileChooser fc = new JFileChooser();
    ExtFileFilter ff1 = new ExtFileFilter("txt", "*.txt — текстовые файлы");
    fc.addChoosableFileFilter(ff1);
    ExtFileFilter ff2 = new ExtFileFilter("doc", "*.doc — документы Word");
    fc.addChoosableFileFilter(ff2);
    if( fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
          File f = fc.getSelectedFile();
          currentFile = f;
          
          try
           {
              FileInputStream inF = new FileInputStream(currentFile);
              DataInputStream in = new DataInputStream(inF);
              String str = in.readLine();
              in.close();
              txt.append(str+"\n");
           }
          catch(IOException ex)
          {
              ex.printStackTrace();
          } 

    }

  }


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

PM MAIL   Вверх
ptr
Дата 13.9.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: нет
Всего: 14



Код

choos() {
...
txt = new JTextArea(10,40);
...
}



--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
check
Дата 13.9.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: нет
Всего: 23



Да, так работает.  Хотя я не совсем понимаю почему,  ведь перед тем как присвоить переменной txt объект класса JTextArea,  нужно её объявить
как переменную типа JTextArea.   Чем этот случай отличается от создания объекта JScrollPane, или скажем JButton?
PM MAIL   Вверх
Metal_Heart
Дата 13.9.2006, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



Обрати внимание на то, что ты написал:
Код

public class choos extends JFrame
{
   JTextArea txt;
...

   JTextArea txt = new JTextArea(10,40);


Добавлено @ 16:40 
по сути - ты просто переназначаешь метку "txt".


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
check
Дата 13.9.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: нет
Всего: 23



Цитата(Metal_Heart @  13.9.2006,  16:39 Найти цитируемый пост)
Обрати внимание на то, что ты написал
Да,  действительно,  нужно обращать внимание на то, что пишешь.  smile  Всем спасибо.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.