2016-02-25 3 views
0

У меня есть проблема с проектом в NetBeans: У меня в основном к классу:Загрузить текстовый файл в JTextArea (Java) в другом классе

CLASS MainFrame 

    ... 
    Model m = null; 
    File f; 
    String filename = ""; 
    String specific = readSpecification(); 
    private void openModelActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
     JFileChooser chooser = new JFileChooser(); 
     FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXT FILES", "txt", "text"); 
     chooser.setFileFilter(filter); 
     chooser.showOpenDialog(null); 
     f = chooser.getSelectedFile(); 
     filename = f.getAbsolutePath(); 
     PrincipalFrame prFrame1 = new PrincipalFrame(); 

     prFrame1.setVisible(true); 


    }           



     public String readSpecification() { 

      String spec = ""; 
      /** 
     * Reads the model specification from file. 
     * 
     * @return a <code>String</code> with the model specification 
     */ 
      try { 
       BufferedReader reader = new BufferedReader(new FileReader(filename)); 
       String line = reader.readLine(); 
       while(line!=null) { 
        spec += line + "\n"; 
        line = reader.readLine(); 
       } 
      } catch (FileNotFoundException ex) { 
       ex.printStackTrace(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
      return spec; 
     } 

    } 

Класс PrincipalFrame в основном пусто.

Класс MainFrame должен выбрать файл file.txt для открытия. Класс PrincipalFrame имеет JTextArea, который должен выполняться с txt, выбранным классом MainFrame. Другими словами, в первый момент открывается MainFrame, и пользователь должен выбрать txt-файл. Как только он его выберет, появится PrincipalFrame, и его JTextArea следует выполнить с файлом file.txt. Надеюсь, теперь это ясно! Спасибо за помощь!

+0

I рода есть проблемы, чтобы увидеть, что вы просите. Вы также скорее получите помощь, если ограничитесь только соответствующим кодом. – CAFEBABE

+1

Я старался быть более конкретным! надеюсь, вы понимаете сейчас! – Pino

ответ

1

Вы можете создать метод setSpecification в классе PrincipalFrame, который заполняет JTextArea. Таким образом, вы можете передать текст спецификации от MainFrame до класса PrincipalFrame. Например:

MainFrame.java:

public class MainFrame { 
    // [...] 

    private void openModelActionPerformed(java.awt.event.ActionEvent evt) { 
     // [...] 
     filename = f.getAbsolutePath(); 
     PrincipalFrame prFrame1 = new PrincipalFrame(); 
     prFrame1.setSpecification(readSpecification()); 
     prFrame1.setVisible(true); 
    } 

    // [...] 
} 

PrincipalFrame.java:

public class PrincipalFrame { 
    private JTextArea textArea; 

    // [...] 

    public void setSpecification(String specification) { 
     textArea.setText(specification); 
    } 
} 
+0

Это прекрасно работает, спасибо вам большое! – Pino