Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > jTextArea.Вывод текста из файла.


Автор: izver84 13.3.2008, 19:01
Здрасте.
Подскажите как вывести в jTextArea данные из *.txt. Если можно пример со следующим алгоритмом:
1)нажымаю кнопку
2)отображаются данные в jTextArea
 smile 

Автор: knox 13.3.2008, 21:44
Код

public void openFile(String filename){
        File file;
        FileReader file_reader = null;
        try{
            file = new File(filename);
            file_reader = new FileReader(file);
            char buffer[] = new char[4096];
            int len;
            jTextArea.setText("");
            while ((len = file_reader.read(buffer)) != -1){
                String s = new String (buffer, 0, len);
                jTextArea.append(s);
            }
            jTextArea.setCaretPosition(0);
        }catch (IOException e){
            JOptionPane.showMessageDialog(null,"Невозможно открыть файл", "Ошибка", JOptionPane.ERROR_MESSAGE|JOptionPane.OK_OPTION);
        }
    }

Автор: izver84 14.3.2008, 09:33
knox,  спасибо за пример. А что такое filename и file? И как соглосовать с кнопкой? 
Как я понимаю процедура откравает стандартный диалог открытия файла file->open.  Нахожу необходимый файл, который отображается в JTextArea. Мне же надо,что бы файл автоматически отображался в JTextArea.  Т.е. где то надо прописать путь к файлу.

Автор: izver84 14.3.2008, 11:21
Отобразить получилось 
если  добавить в слухатель процедуру

Цитата

  FileReader file_reader = null;
       file_reader = new FileReader("D:\\eclipse3.2.2\\workspace\\sbit\\newfile.txt");
          char buffer[] = new char[4096];
          int len;
                  while ((len = file_reader.read(buffer)) != -1){
             String s = new String (buffer, 0, len);
              jTextArea.append(s);
           }


полный код для кнопки
Цитата

private JButton getJButton5() {
  if (jButton5 == null) {
    jButton5 = new JButton();
    jButton5.setPreferredSize(new Dimension(40, 40));
    jButton5.setSelected(false);
    jButton5.setMinimumSize(new Dimension(40, 40));
    jButton5.setLocation(new Point(166, 1));
    jButton5.setToolTipText("Выход");
    jButton5.setIcon(new ImageIcon(getClass().getResource("/bmp/exit.gif")));
    jButton5.setMaximumSize(new Dimension(40, 40));
    jButton5.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
     try {
       FileReader file_reader = null;
        file_reader = new FileReader("D:\\eclipse3.2.2\\workspace\\sbit\\newfile.txt");
           char buffer[] = new char[4096];
           int len;
                     while ((len = file_reader.read(buffer)) != -1){
              String s = new String (buffer, 0, len);
               jTextArea.append(s);
            }
    
      } catch (IOException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
      }
     
    }
    });
  
  }
  return jButton5;
    }
 

Вопрос: 
Содержание отображается коряво. как этого избежать?
Исходный фал прикреплен.

Автор: izver84 14.3.2008, 17:34
Всё нормально. изменил шрифт в текстареа. 

Автор: izver84 28.1.2009, 17:48
 я загружаю в jTextArea данные из *.txt

Код

FileReader file_reader = null;
       file_reader = new FileReader("D:\\eclipse3.2.2\\workspace\\sbit\\newfile.txt");
          char buffer[] = new char[4096];
          int len;
                  while ((len = file_reader.read(buffer)) != -1){
             String s = new String (buffer, 0, len);
              jTextArea.append(s);
           }



бегунок прыгает в конец jTextArea. 
Вопрос примитивный. Как сделать так, чтобы после отображения бегунок остался на первом строке?

Автор: izver84 30.1.2009, 17:03
Разобрался. 

Код

 jTextArea.setCaretPosition(1);  


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)