java - 尝试从文本区域写入文件并从文件写入文本区域
问题描述
我可以成功地从文本区域写入文件,但在从文件写入文本区域时遇到问题。问题似乎在于 Window.setJTextArea()。我尝试过使用不同类型的 I/O 选项,但陷入了僵局。我在这里超出了我的深度,请提供指导。Window 类中有更多正文,但它没有通过本网站的审查阶段,所以我删除了它。
class Window {
file = new File("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
public File getFile() {
return file;
}
public void setEmpty() {
textArea = new JTextArea("Empty");
}
public void setJTextArea() {
textArea = new JTextArea("");
try {
reader = new FileReader("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
textArea.read(reader, "File");
reader.close();
} catch(IOException i) {
i.printStackTrace();
}
}
public void saveJTextArea() {
try {
writer = new FileWriter("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
textArea.write(writer);
writer.close();
} catch (IOException i) {
i.printStackTrace();
}
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
final class EventHandler extends Window {
EventHandler() {
put();
get();
}
public void put() {
put.addActionListener(new ActionListener() {
// save text area to file
public void actionPerformed(ActionEvent e) {
saveJTextArea();
}
});
}
public void get() {
get.addActionListener(new ActionListener() {
// Display Contents of file
public void actionPerformed(ActionEvent e) {
setJTextArea();
}
});
}
}
解决方案
但在从文件写入文本区域时遇到问题。问题似乎在于 Window.setJTextArea()。
你的方法是正确的。您应该read(…)
使用JTextArea
.
但是,问题是您创建了一个新的 JTextArea 并且您从未将文本区域添加到框架中。所以文本只是坐在内存中,但没有显示在框架上。
textArea = new JTextArea("");
只需删除上面的语句:
//textArea = new JTextArea("");
该read(…)
方法将在加载文件之前清除文本区域中的文本。
有关简单的工作示例,请参阅:将文本文件加载到 textarea中。
推荐阅读
- javascript - 如何更改 Vue 中的计算对象?
- c# - 无法使用 Microsoft Graph API 获取经理详细信息
- python - python 2.7, scraping. import re findall, changing output so that only float number is left, calculating sum
- c# - 如何将 ImageButton (它的图像和按钮)居中在网页中间?
- python - 在 if/while/for 中测试数字或非整数
- linux - ip forward 在 CentOS7 上的 netns 内不起作用
- android - 在我卸载 Android 中的应用程序之前,服务是否会驻留在手机系统中?
- c# - 错误包 System.Device.Location.Portable 与 monoandroid81 不兼容
- html - ui路由器浏览器刷新
- graphql - 是否可以使用 GraphQL 将接口实现到另一个接口?