import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//先把界面做好了
public class Test extends JFrame implements ActionListener{
//菜单主干
JMenuBar jmb=null;
//菜单
JMenu jm=null;
//菜单项
JMenuItem jmi=null;
JMenuItem jmi1=null;
//新建编辑区
JTextArea jta;
JScrollPane jsp;
//定义文件选择组件
JFileChooser jfc=null;
//定义文件输入输出流
FileReader fr=null;
BufferedReader bur;
FileWriter fw=null;
BufferedWriter buw=null;
//所选文件的路径名
String path=null;
public Test()
{
//界面基本属性设置
this.setSize(400,300);
this.setLocation(400, 300);
//this.setLayout(manager);
this.setTitle("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//新建对象
jta=new JTextArea();
JScrollPane jsp = new JScrollPane(jta);
jmb=new JMenuBar();
jm=new JMenu("文件(F)");
jmi=new JMenuItem("打开");
jm.setMnemonic('f'); //设置助记符
jmi1=new JMenuItem("保存");
//注册监听
jmi.addActionListener(this);
jmi1.addActionListener(this);
//设置指令别名
jmi.setActionCommand("open");
jmi1.setActionCommand("save");
//加入
this.setJMenuBar(jmb);
this.add(jsp);
jmb.add(jm);
jm.add(jmi);
jm.add(jmi1);
}
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
new Test();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand().equals("open"))
{
//System.out.print("aa");
jfc=new JFileChooser();
jfc.setDialogTitle("请选择文件...");
jfc.showOpenDialog(null);//演示对话框
jfc.setVisible(true);//让对话框可见
path=jfc.getSelectedFile().getAbsolutePath();//获得地址
try {
fr=new FileReader(path);
bur=new BufferedReader(fr);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//把内容读到内存
String s=null;
String s1=null;
try {
while((s=bur.readLine())!=null)
{
s1=s1+s+"\r\n";
}
//加到编辑区
jta.setText(s1);//这里稍微注意一下,不知道jsp怎么设置的,但是这样直接加到
//jta里也行
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally
{
try {
fr.close();
bur.close();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if(e.getActionCommand().equals("save"))
{
jfc=new JFileChooser();
jfc.setDialogTitle("保存");
jfc.showSaveDialog(null);
jfc.setVisible(true);
path=jfc.getSelectedFile().getAbsolutePath();
//System.out.print(jta.getText());
try {
fw=new FileWriter(path);
buw=new BufferedWriter(fw);
System.out.print(this.jta.getText());
buw.write(this.jta.getText());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally
{
try
{
fw.close();
buw.close();
}
catch(Exception e1)
{
e1.getMessage();
}
}
}
}
}
7 个解决方案
#1
谁来帮帮忙啊,郁闷着呢。。。
#2
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
//先把界面做好了
public class test3 extends JFrame implements ActionListener
{
//菜单主干
JMenuBar jmb = null;
//菜单
JMenu jm = null;
//菜单项
JMenuItem jmi = null;
JMenuItem jmi1 = null;
//新建编辑区
JTextArea jta;
JScrollPane jsp;
//定义文件选择组件
JFileChooser jfc = null;
//定义文件输入输出流
FileReader fr = null;
BufferedReader bur;
FileWriter fw = null;
BufferedWriter buw = null;
//所选文件的路径名
String path = null;
public void Test()
{
Container Container_ = getContentPane();
Container_.setLayout(new FlowLayout());
//界面基本属性设置
//this.setLayout(manager);
this.setTitle("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//新建对象
jta = new JTextArea();
JScrollPane jsp = new JScrollPane(jta);
jmb = new JMenuBar();
jm = new JMenu("文件(F)");
jmi = new JMenuItem("打开");
jm.setMnemonic('f'); //设置助记符
jmi1 = new JMenuItem("保存");
//
// //注册监听
jmi.addActionListener(this);
jmi1.addActionListener(this);
//
// //设置指令别名
jmi.setActionCommand("open");
jmi1.setActionCommand("save");
//加入
this.setJMenuBar(jmb);
this.add(jsp);
jmb.add(jm);
jm.add(jmi);
jm.add(jmi1);
Container_.add(jm);
}
/**
* @param args
*/
public static void main(String[] args)
{
test3 ss = new test3();
ss.Test();
ss.setSize(600,400);
ss.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("open"))
{
//System.out.print("aa");
jfc = new JFileChooser();
jfc.setDialogTitle("请选择文件...");
jfc.showOpenDialog(null);//演示对话框
jfc.setVisible(true);//让对话框可见
path = jfc.getSelectedFile().getAbsolutePath();//获得地址
try
{
fr = new FileReader(path);
bur = new BufferedReader(fr);
}
catch (Exception e1)
{
e1.printStackTrace();
}
//把内容读到内存
String s = null;
String s1 = null;
try
{
while ((s = bur.readLine()) != null)
{
s1 = s1 + s + "\r\n";
}
//加到编辑区
jta.setText(s1);//这里稍微注意一下,不知道jsp怎么设置的,但是这样直接加到
//jta里也行
}
catch (IOException e1)
{
e1.printStackTrace();
}
finally
{
try
{
fr.close();
bur.close();
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if (e.getActionCommand().equals("save"))
{
jfc = new JFileChooser();
jfc.setDialogTitle("保存");
jfc.showSaveDialog(null);
jfc.setVisible(true);
path = jfc.getSelectedFile().getAbsolutePath();
//System.out.print(jta.getText());
try
{
fw = new FileWriter(path);
buw = new BufferedWriter(fw);
System.out.print(this.jta.getText());
buw.write(this.jta.getText());
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally
{
try
{
fw.close();
buw.close();
}
catch (Exception e1)
{
e1.getMessage();
}
}
}
}
}
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
//先把界面做好了
public class test3 extends JFrame implements ActionListener
{
//菜单主干
JMenuBar jmb = null;
//菜单
JMenu jm = null;
//菜单项
JMenuItem jmi = null;
JMenuItem jmi1 = null;
//新建编辑区
JTextArea jta;
JScrollPane jsp;
//定义文件选择组件
JFileChooser jfc = null;
//定义文件输入输出流
FileReader fr = null;
BufferedReader bur;
FileWriter fw = null;
BufferedWriter buw = null;
//所选文件的路径名
String path = null;
public void Test()
{
Container Container_ = getContentPane();
Container_.setLayout(new FlowLayout());
//界面基本属性设置
//this.setLayout(manager);
this.setTitle("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//新建对象
jta = new JTextArea();
JScrollPane jsp = new JScrollPane(jta);
jmb = new JMenuBar();
jm = new JMenu("文件(F)");
jmi = new JMenuItem("打开");
jm.setMnemonic('f'); //设置助记符
jmi1 = new JMenuItem("保存");
//
// //注册监听
jmi.addActionListener(this);
jmi1.addActionListener(this);
//
// //设置指令别名
jmi.setActionCommand("open");
jmi1.setActionCommand("save");
//加入
this.setJMenuBar(jmb);
this.add(jsp);
jmb.add(jm);
jm.add(jmi);
jm.add(jmi1);
Container_.add(jm);
}
/**
* @param args
*/
public static void main(String[] args)
{
test3 ss = new test3();
ss.Test();
ss.setSize(600,400);
ss.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("open"))
{
//System.out.print("aa");
jfc = new JFileChooser();
jfc.setDialogTitle("请选择文件...");
jfc.showOpenDialog(null);//演示对话框
jfc.setVisible(true);//让对话框可见
path = jfc.getSelectedFile().getAbsolutePath();//获得地址
try
{
fr = new FileReader(path);
bur = new BufferedReader(fr);
}
catch (Exception e1)
{
e1.printStackTrace();
}
//把内容读到内存
String s = null;
String s1 = null;
try
{
while ((s = bur.readLine()) != null)
{
s1 = s1 + s + "\r\n";
}
//加到编辑区
jta.setText(s1);//这里稍微注意一下,不知道jsp怎么设置的,但是这样直接加到
//jta里也行
}
catch (IOException e1)
{
e1.printStackTrace();
}
finally
{
try
{
fr.close();
bur.close();
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if (e.getActionCommand().equals("save"))
{
jfc = new JFileChooser();
jfc.setDialogTitle("保存");
jfc.showSaveDialog(null);
jfc.setVisible(true);
path = jfc.getSelectedFile().getAbsolutePath();
//System.out.print(jta.getText());
try
{
fw = new FileWriter(path);
buw = new BufferedWriter(fw);
System.out.print(this.jta.getText());
buw.write(this.jta.getText());
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally
{
try
{
fw.close();
buw.close();
}
catch (Exception e1)
{
e1.getMessage();
}
}
}
}
}
#3
只是页面出来,监听没调 .Swing 学完 就没用过.
#4
是什么问题嘛?我这边测试连中间的textarea都没有,没发测试输入。
你是没有数据刷出吗?在红色代码后面加一句buw.flush()试试吧。
你是没有数据刷出吗?在红色代码后面加一句buw.flush()试试吧。
#5
非常感谢。
我测试的时候有时也看不到textarea,再运行几次就好了,可能有点问题吧,只是学习初期,想理解io的。
加了那个方法以后的确是刷出来了,为什么还要刷一次才出来呢?不理解啊。。。还有个问题就是,如果在textarea中输入一些字符然后保存,如果用电脑自带的记事本打开的话,输入的换行符就没了,但是用我自己的这个记事本打开的话就能看到换行了,不知道什么问题。。。
#6
?什么错误。
#7
保存后用系统自带的记事本打开是空的,4楼的让我加flush()是解决了一些问题,能看到保存的内容了,但是换行没了。。。用我自己的这个记事本打开就能看到换行。。。
#1
谁来帮帮忙啊,郁闷着呢。。。
#2
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
//先把界面做好了
public class test3 extends JFrame implements ActionListener
{
//菜单主干
JMenuBar jmb = null;
//菜单
JMenu jm = null;
//菜单项
JMenuItem jmi = null;
JMenuItem jmi1 = null;
//新建编辑区
JTextArea jta;
JScrollPane jsp;
//定义文件选择组件
JFileChooser jfc = null;
//定义文件输入输出流
FileReader fr = null;
BufferedReader bur;
FileWriter fw = null;
BufferedWriter buw = null;
//所选文件的路径名
String path = null;
public void Test()
{
Container Container_ = getContentPane();
Container_.setLayout(new FlowLayout());
//界面基本属性设置
//this.setLayout(manager);
this.setTitle("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//新建对象
jta = new JTextArea();
JScrollPane jsp = new JScrollPane(jta);
jmb = new JMenuBar();
jm = new JMenu("文件(F)");
jmi = new JMenuItem("打开");
jm.setMnemonic('f'); //设置助记符
jmi1 = new JMenuItem("保存");
//
// //注册监听
jmi.addActionListener(this);
jmi1.addActionListener(this);
//
// //设置指令别名
jmi.setActionCommand("open");
jmi1.setActionCommand("save");
//加入
this.setJMenuBar(jmb);
this.add(jsp);
jmb.add(jm);
jm.add(jmi);
jm.add(jmi1);
Container_.add(jm);
}
/**
* @param args
*/
public static void main(String[] args)
{
test3 ss = new test3();
ss.Test();
ss.setSize(600,400);
ss.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("open"))
{
//System.out.print("aa");
jfc = new JFileChooser();
jfc.setDialogTitle("请选择文件...");
jfc.showOpenDialog(null);//演示对话框
jfc.setVisible(true);//让对话框可见
path = jfc.getSelectedFile().getAbsolutePath();//获得地址
try
{
fr = new FileReader(path);
bur = new BufferedReader(fr);
}
catch (Exception e1)
{
e1.printStackTrace();
}
//把内容读到内存
String s = null;
String s1 = null;
try
{
while ((s = bur.readLine()) != null)
{
s1 = s1 + s + "\r\n";
}
//加到编辑区
jta.setText(s1);//这里稍微注意一下,不知道jsp怎么设置的,但是这样直接加到
//jta里也行
}
catch (IOException e1)
{
e1.printStackTrace();
}
finally
{
try
{
fr.close();
bur.close();
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if (e.getActionCommand().equals("save"))
{
jfc = new JFileChooser();
jfc.setDialogTitle("保存");
jfc.showSaveDialog(null);
jfc.setVisible(true);
path = jfc.getSelectedFile().getAbsolutePath();
//System.out.print(jta.getText());
try
{
fw = new FileWriter(path);
buw = new BufferedWriter(fw);
System.out.print(this.jta.getText());
buw.write(this.jta.getText());
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally
{
try
{
fw.close();
buw.close();
}
catch (Exception e1)
{
e1.getMessage();
}
}
}
}
}
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
//先把界面做好了
public class test3 extends JFrame implements ActionListener
{
//菜单主干
JMenuBar jmb = null;
//菜单
JMenu jm = null;
//菜单项
JMenuItem jmi = null;
JMenuItem jmi1 = null;
//新建编辑区
JTextArea jta;
JScrollPane jsp;
//定义文件选择组件
JFileChooser jfc = null;
//定义文件输入输出流
FileReader fr = null;
BufferedReader bur;
FileWriter fw = null;
BufferedWriter buw = null;
//所选文件的路径名
String path = null;
public void Test()
{
Container Container_ = getContentPane();
Container_.setLayout(new FlowLayout());
//界面基本属性设置
//this.setLayout(manager);
this.setTitle("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//新建对象
jta = new JTextArea();
JScrollPane jsp = new JScrollPane(jta);
jmb = new JMenuBar();
jm = new JMenu("文件(F)");
jmi = new JMenuItem("打开");
jm.setMnemonic('f'); //设置助记符
jmi1 = new JMenuItem("保存");
//
// //注册监听
jmi.addActionListener(this);
jmi1.addActionListener(this);
//
// //设置指令别名
jmi.setActionCommand("open");
jmi1.setActionCommand("save");
//加入
this.setJMenuBar(jmb);
this.add(jsp);
jmb.add(jm);
jm.add(jmi);
jm.add(jmi1);
Container_.add(jm);
}
/**
* @param args
*/
public static void main(String[] args)
{
test3 ss = new test3();
ss.Test();
ss.setSize(600,400);
ss.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("open"))
{
//System.out.print("aa");
jfc = new JFileChooser();
jfc.setDialogTitle("请选择文件...");
jfc.showOpenDialog(null);//演示对话框
jfc.setVisible(true);//让对话框可见
path = jfc.getSelectedFile().getAbsolutePath();//获得地址
try
{
fr = new FileReader(path);
bur = new BufferedReader(fr);
}
catch (Exception e1)
{
e1.printStackTrace();
}
//把内容读到内存
String s = null;
String s1 = null;
try
{
while ((s = bur.readLine()) != null)
{
s1 = s1 + s + "\r\n";
}
//加到编辑区
jta.setText(s1);//这里稍微注意一下,不知道jsp怎么设置的,但是这样直接加到
//jta里也行
}
catch (IOException e1)
{
e1.printStackTrace();
}
finally
{
try
{
fr.close();
bur.close();
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if (e.getActionCommand().equals("save"))
{
jfc = new JFileChooser();
jfc.setDialogTitle("保存");
jfc.showSaveDialog(null);
jfc.setVisible(true);
path = jfc.getSelectedFile().getAbsolutePath();
//System.out.print(jta.getText());
try
{
fw = new FileWriter(path);
buw = new BufferedWriter(fw);
System.out.print(this.jta.getText());
buw.write(this.jta.getText());
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally
{
try
{
fw.close();
buw.close();
}
catch (Exception e1)
{
e1.getMessage();
}
}
}
}
}
#3
只是页面出来,监听没调 .Swing 学完 就没用过.
#4
是什么问题嘛?我这边测试连中间的textarea都没有,没发测试输入。
你是没有数据刷出吗?在红色代码后面加一句buw.flush()试试吧。
你是没有数据刷出吗?在红色代码后面加一句buw.flush()试试吧。
#5
非常感谢。
我测试的时候有时也看不到textarea,再运行几次就好了,可能有点问题吧,只是学习初期,想理解io的。
加了那个方法以后的确是刷出来了,为什么还要刷一次才出来呢?不理解啊。。。还有个问题就是,如果在textarea中输入一些字符然后保存,如果用电脑自带的记事本打开的话,输入的换行符就没了,但是用我自己的这个记事本打开的话就能看到换行了,不知道什么问题。。。
#6
?什么错误。
#7
保存后用系统自带的记事本打开是空的,4楼的让我加flush()是解决了一些问题,能看到保存的内容了,但是换行没了。。。用我自己的这个记事本打开就能看到换行。。。