java可视化打开文件

2 篇文章 0 订阅
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Data 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 Data()).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("打开");
        b2 = new Button("保存");
        b3 = new Button("另存为");
        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){
    	long start = System.currentTimeMillis();//开始时间
        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());//文件对象赋值
                    //文件读入通道连向文件对象
                	BufferedInputStream fr = new BufferedInputStream(
                            new FileInputStream(file1));;
                    BufferedReader br = new BufferedReader(new InputStreamReader(
                            fr), 10 * 1024 * 1024);//定义文件缓冲区
                    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单击[打开]按钮
        long end = System.currentTimeMillis();//结束时间
        ta1.append("总共耗时:"+(end - start)+"ms");
        // 输入输出异常捕获
        //单击[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);
    }
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的Java可视化商品查询器代码,实现了三项以上菜单功能: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ProductQuery extends JFrame implements ActionListener { private JMenuBar menuBar; private JMenu fileMenu, editMenu, helpMenu; private JMenuItem openMenuItem, saveMenuItem, exitMenuItem; private JMenuItem addMenuItem, deleteMenuItem, modifyMenuItem; private JMenuItem aboutMenuItem; public ProductQuery() { setTitle("商品查询器"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建菜单栏和菜单项 menuBar = new JMenuBar(); fileMenu = new JMenu("文件"); editMenu = new JMenu("编辑"); helpMenu = new JMenu("帮助"); openMenuItem = new JMenuItem("打开"); saveMenuItem = new JMenuItem("保存"); exitMenuItem = new JMenuItem("退出"); addMenuItem = new JMenuItem("添加"); deleteMenuItem = new JMenuItem("删除"); modifyMenuItem = new JMenuItem("修改"); aboutMenuItem = new JMenuItem("关于"); // 将菜单项添加到菜单中 fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.addSeparator(); fileMenu.add(exitMenuItem); editMenu.add(addMenuItem); editMenu.add(deleteMenuItem); editMenu.add(modifyMenuItem); helpMenu.add(aboutMenuItem); // 将菜单添加到菜单栏中 menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(helpMenu); // 设置菜单栏 setJMenuBar(menuBar); // 注册菜单项的事件监听器 openMenuItem.addActionListener(this); saveMenuItem.addActionListener(this); exitMenuItem.addActionListener(this); addMenuItem.addActionListener(this); deleteMenuItem.addActionListener(this); modifyMenuItem.addActionListener(this); aboutMenuItem.addActionListener(this); setVisible(true); } public void actionPerformed(ActionEvent event) { // 处理菜单项的事件 if (event.getSource() == openMenuItem) { JOptionPane.showMessageDialog(this, "打开文件"); } else if (event.getSource() == saveMenuItem) { JOptionPane.showMessageDialog(this, "保存文件"); } else if (event.getSource() == exitMenuItem) { System.exit(0); } else if (event.getSource() == addMenuItem) { JOptionPane.showMessageDialog(this, "添加商品"); } else if (event.getSource() == deleteMenuItem) { JOptionPane.showMessageDialog(this, "删除商品"); } else if (event.getSource() == modifyMenuItem) { JOptionPane.showMessageDialog(this, "修改商品"); } else if (event.getSource() == aboutMenuItem) { JOptionPane.showMessageDialog(this, "关于商品查询器"); } } public static void main(String[] args) { new ProductQuery(); } } ``` 这段代码创建了一个包含文件、编辑和帮助三个菜单的可视化商品查询器。每个菜单下都有多个菜单项,通过添加事件监听器来实现菜单项的功能。在这个例子中,菜单项只是弹出了一些简单的对话框,实际应用中可以根据需要进行具体的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值