Загрузочный файл Java Swing в JEditorPane - PullRequest
0 голосов
/ 28 марта 2012

Я пытаюсь написать приложение типа текстового редактора на Java / Swing.У меня работает FileChooser, и я могу распечатать содержимое файла на консоль.Я хочу загрузить файл в JEditorPane

Когда я вызываю setText (), он обновляет значение текста (я могу напечатать результат getText, но фактическая EditorPane не обновляется).Я пытался вызвать repaint / revalidate на JEditorPane, инкапсулирующем JScrollPane, но ничего не обновит текст до того, что я отправил в setText.

Я что-то упустил?

PS JEditorPane обернутвнутри JScrollPane, и у меня есть метод в моем mainEditor, который передает строку в метод setText JEditorPane.

      if (r == JFileChooser.APPROVE_OPTION) 
      {
          FileInputStream fis;
          BufferedReader br;
          try
            {
                fis = new FileInputStream( 
                      chooser.getSelectedFile() ) ;
                br  = new BufferedReader( 
                      new InputStreamReader( fis ) ) ;
                String read ;
                StringBuffer text = new StringBuffer() ;
                while( ( read = br.readLine() ) != null ) 
                {
                   text.append( read ).append( "\n" ) ;
                }
                Main.frame.mainEditor.setText( text.toString() ) ;
                Main.frame.mainEditor.revalidate();
            }
            catch( IOException e1 ) 
            {
                JOptionPane.showMessageDialog( this , 
                    "Error in File Operation" ,
                    "Error in File Operation" , 
                    JOptionPane.INFORMATION_MESSAGE) ;
            }             
      }

Ответы [ 2 ]

4 голосов
/ 28 марта 2012

Сформируйте String в File ссылку, преобразуйте ее в URL, затем вызовите setPage(URL)

См. здесь для примера.

image

3 голосов
/ 28 марта 2012

использовать встроенные методы для InputStream для семейства JTextComponents

JTextCompoents # считываем ();

JTextComponents # запись ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...