将文本文件加载到另一个类的JTextArea(java)中

时间:2016-02-25 21:02:00

标签: java swing netbeans-7 jdk1.6

我对netbeans中的项目有问题: 我主要上课:

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,应该通过MainFrame类选择的txt来实现。 换句话说,在第一时刻打开MainFrame,用户应该选择一个txt文件。一旦他选择了它,PrincipalFrame就出现了,它的JTextArea应该与file.txt一起完成。 希望现在很清楚! 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您可以在填充setSpecification的{​​{1}}类中创建PrincipalFrame方法。这样,您就可以将规范文本从JTextArea传递到MainFrame类。例如:

MainFrame.java:

PrincipalFrame

PrincipalFrame.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);
    }

    // [...]
}