在不同的 class 中加载 JTextArea (java) 中的文本文件
Load a text file in a JTextArea (java) in a different class
我在 netbeans 中遇到一个项目问题:
我主要是 class:
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;
}
}
class PrincipalFrame 大部分是空的。
MainFrame Class 应该 select 一个 file.txt 打开。
PrincipalFrame Class,有一个 JTextArea,应该用 MainFrame Class 选择的 txt 来实现。
换句话说,在打开 MainFrame 的第一刻,用户应该 select 一个 txt 文件。一旦他选择了它,PrincipalFrame 就会出现并且它的 JTextArea 应该已经用 file.txt 填充了。
希望现在清楚了!
感谢您的帮助!
您可以在 PrincipalFrame
class 中创建一个 setSpecification
方法来填充 JTextArea
。这样您就可以将规范文本从 MainFrame
传递到 PrincipalFrame
class。例如:
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);
}
}
我在 netbeans 中遇到一个项目问题: 我主要是 class:
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;
}
}
class PrincipalFrame 大部分是空的。
MainFrame Class 应该 select 一个 file.txt 打开。 PrincipalFrame Class,有一个 JTextArea,应该用 MainFrame Class 选择的 txt 来实现。 换句话说,在打开 MainFrame 的第一刻,用户应该 select 一个 txt 文件。一旦他选择了它,PrincipalFrame 就会出现并且它的 JTextArea 应该已经用 file.txt 填充了。 希望现在清楚了! 感谢您的帮助!
您可以在 PrincipalFrame
class 中创建一个 setSpecification
方法来填充 JTextArea
。这样您就可以将规范文本从 MainFrame
传递到 PrincipalFrame
class。例如:
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);
}
}