问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用Java编写一个可以读取和写入txt文档的程序 要求实现可视化的窗口

发布网友 发布时间:2022-04-29 19:03

我来回答

1个回答

热心网友 时间:2022-06-20 05:39

import java.awt.*;

import java.awt.event.*;

import java.io.*;

public class MyTest_35 extends WindowAdapter 

       implements ActionListener,TextListener

{

    Frame f;

    TextArea ta1;  //多行文本区

    Panel p1;

    TextField tf1; //文本框

    Button b1,b2,b3; 

    FileDialog fd;  //文件对话框

    File file1 = null;  //文件对象初始化为空值

    public static void main(String args[])

    {    //主方法调用自定义的display()方法

        (new MyTest_35()).display();

    }

    public void display() //display()方法

    {   //设置界面与监听

        f = new Frame("EditFile");

        f.setSize(680,400);

        f.setLocation(200,140);

        f.setBackground(Color.lightGray);

        f.addWindowListener(this);

        tf1 = new TextField(); //文本框

        tf1.setEnabled(false);

        //设置文本行的初始字体

        tf1.setFont(new Font("Dialog",0,20));  

        f.add(tf1,"North");

        ta1 = new TextArea();  //多行文本区

        //设置文本区的初始字体

        ta1.setFont(new Font("Dialog",0,20));  

        f.add(ta1);

        //注册文本区的事件监听程序

        ta1.addTextListener(this);             

        p1 = new Panel(); //面板与布局

        p1.setLayout(new 

               FlowLayout(FlowLayout.LEFT));

        b1 = new Button("Open");

        b2 = new Button("Save");

        b3 = new Button("Save As");

        p1.add(b1); //三个按钮挂上面板

        p1.add(b2);

        p1.add(b3);

        b2.setEnabled(false);

        b3.setEnabled(false);

        //注册按钮的事件监听程序

        b1.addActionListener(this);            

        b2.addActionListener(this);

        b3.addActionListener(this);

        f.add(p1,"South");//面板贴上窗体

        f.setVisible(true);

    }//display()方法结束

    //实现TextListener接口中的方法,

    //当对多行对文本区的内容编辑时触发

    public void textValueChanged(TextEvent e)

    {   // "保存"和"另存为"两个按钮点亮            

        b2.setEnabled(true);

        b3.setEnabled(true);

    }

    //响应单击按钮的高级事件

    public void actionPerformed(ActionEvent e)

    {   

        if (e.getSource()==b1)   //单击[打开]按钮时

        {

            fd = new FileDialog(f,"Open",FileDialog.LOAD);

            fd.setVisible(true);     //创建并显示打开文件对话框

            if ((fd.getDirectory()!=null) 

                      && (fd.getFile()!=null))

            {   //单行文本框显示文件路径名

                tf1.setText(fd.getDirectory()+fd.getFile());

                try           //以缓冲区方式读取文件内容

                {

                    file1 = new  //文件对象赋值

                         File(fd.getDirectory(),fd.getFile());

                    //文件读入通道连向文件对象

                    FileReader fr = new FileReader(file1);

                    BufferedReader br = new  //定义文件缓冲区

                              BufferedReader(fr);

                    String aline;

                   //按行读取文本,每行附加在多行文本区之后

                    while ((aline=br.readLine()) != null)

                        ta1.append(aline+"\r\n"); 

                    fr.close();

                    br.close(); //关闭文件缓冲区

                }  // 输入输出异常捕获

                catch (IOException ioe)

                {

                    System.out.println(ioe);

                }

            } //结束if文件不为空

        }   //结束if单击[打开]按钮

        //单击[Save]或[SaveAs]按钮时

        if ((e.getSource()==b2) || (e.getSource()==b3)) 

        {    //单击[SaveAs]按钮时,

                 //或单击[Save]按钮且文件对象为空时

            if ((e.getSource()==b3) ||

                  (e.getSource()==b2)&&(file1==null))

            {   //文件对话框对象,保存方式   

                fd = new 

                       FileDialog(f,"Save",FileDialog.SAVE);

                if (file1==null)

                    fd.setFile("Edit1.txt"); //缺省文件名

                else

                    fd.setFile(file1.getName());

                fd.setVisible(true); 

                //创建并显示保存文件对话框

                if ((fd.getDirectory()!=null) 

                         && (fd.getFile()!=null))

                {   //单行文本框中显示文件路径和名称

                    tf1.setText(fd.getDirectory()+fd.getFile());

                    //文件对象的赋值

                    file1 = new 

                        File(fd.getDirectory(),fd.getFile());

                    save(file1); //调用自定义的save方法

                }

            }

            else  //文件对象不为空时

                save(file1);

        }

    }//响应单击按钮的高级事件结束

    //自定义的save方法,参数为文件对象

    public void save(File file1)

    {

        try  //将文本区内容写入字符输出流

        {   //文件写入通道连向文件对象

            FileWriter  fw = new FileWriter(file1);

            fw.write(ta1.getText());//写入多行文本框的内容

            fw.close(); //关闭通道

            b2.setEnabled(false); //点灭保存按钮

            b3.setEnabled(false);

        }

        catch (IOException ioe)

        {   //异常处理

            System.out.println(ioe);

        }

    }

    //响应关闭窗口事件

    public void windowClosing(WindowEvent e)

    {

        System.exit(0);

    }

}

希望能加点分!!

做得很累!!!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 一钉一铆的意思? 怎样才能实时显示文本里的内容? 请教:混合性皮肤用哪个牌子的护肤品? 混合性皮肤, 夏天用什么护肤品好?麻烦推荐 - 信息提示 我是混合性皮肤,毛孔有点粗,买什么牌子的护肤品比较好??? 抖音左下角浏览显示几个人的图像 苹果抖音视频左下角没有浏览 如何从.MV文件中提取音频 100千瓦配多大的变压器 120千瓦变压器工作24小时可用多少度电 120户每户6千瓦需要多大流量的变压器 知道KW怎么算需要多大的变压器? 120千瓦变压器多少钱? 如果工厂所有用电设备功率加起来等于115.4KW,需要安装多大的变压器 1200KW总用电量要用多大的变压器 一百千瓦的功率需要多大的变压器 100千瓦需要多大的容量的变压器?计算公式给出来 井下120的千瓦的功率要用多大的隔离变压器? 100kw的电机需要安装多大的变压器?怎么计算出来的? 求这一款吓人小游戏的地址。或者名字!.... 帮忙编写一个Java的文本写入和读出的程序,要有可视化的窗口 找一个恐怖的游戏(flash) 混合性皮肤冬天用什麼牌子的护肤品好 混合型皮肤用哪个牌子的护肤品比较好? 我wordpress写文章时怎么没有文本和可视化呢?看图说话 找一个吓人的游戏 就是有人正玩小游戏呢 突然出现个鬼 大声叫 特别吓人 wordpress用文本模式和可视化模式有什么区别 混合性皮肤适合用什么品牌的化妆品 32岁混合性皮肤适合用什么牌子护肤品? 求整人小游戏,就是那种可以吓人的那种,想整一下朋友,恐怖整人的小游戏。 wordpress升级最新版本后编辑器中可视化和文本无法切换怎么办 谁推荐个恐怖灵异的小游戏,在线玩的。 谁给个神秘祭坛小游戏的地址能传到空间的 有没有一些恐怖小游戏 谁有最恐怖网页小游戏? 耳机里总有声音 神秘祭坛动画是什么 吓人的连连看 关于赞扬母爱的句子