Java 实现文件的打开操作

来源:互联网 发布:知乎 委员 葫芦娃 编辑:程序博客网 时间:2024/05/21 22:45

1。实现类似于Word 中的打开操作,最终要的一点就是:获得文件的路径

 

2。JFileChooser类可以轻松实现这一功能

3。一个例子:实现了一个图片查看器的功能;首先要找到图片,获得图片路径,然后将图片展现出来

 

 

import java.awt.EventQueue;

import javax.swing.JFrame;

public class ImageViewer {
  public static void main(String[] args)
    {
   /*在java的主线程中使用事务的方式来处理事件,
                                      主线程维护一个事件队列,
                                    当一个你想要放在主线程里要做的事情,但不用立刻去做,
                                      或者不想中止当前事务,
                                    调用EventQueue.invokeLater(runner);把该事物放在事件队列最后,
                                 让主线程自行执行
    */
       EventQueue.invokeLater(new Runnable()
          {
             public void run()
             {
                JFrame frame = new ImageViewerFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置退出方式
                frame.setVisible(true);                                //设置可见
             }
          });
    }

}

 

 

 

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.*;

public class ImageViewerFrame extends JFrame{
 public ImageViewerFrame()
    {
       setTitle("ImageViewer");
       setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

       // use a label to display the images
       label = new JLabel();
       add(label);

       // set up the file chooser
       chooser = new JFileChooser();                 //用于打开文件的一个类
       chooser.setCurrentDirectory(new File("."));    //选择默认路径

       // set up the menu bar
       JMenuBar menuBar = new JMenuBar();          //菜单栏
       setJMenuBar(menuBar);                       //将菜单栏加入frame中

       JMenu menu = new JMenu("File");              //定义一个菜单
       menuBar.add(menu);                           //将此菜单加入菜单栏

       JMenuItem openItem = new JMenuItem("Open");  //菜单中的_项_
       menu.add(openItem);                          //将菜单项加入菜单
       openItem.addActionListener(new ActionListener()
          {
             public void actionPerformed(ActionEvent event)
             {
                // show file chooser dialog
                int result = chooser.showOpenDialog(null);         

                // if file selected, set it as icon of the label
                if (result == JFileChooser.APPROVE_OPTION)
                {
                   String name = chooser.getSelectedFile().getPath(); //获取图片的路径
                   label.setIcon(new ImageIcon(name));               //将图片放于label上
                }
             }
          });

       JMenuItem exitItem = new JMenuItem("Exit");
       menu.add(exitItem);
       exitItem.addActionListener(new ActionListener()
          {
             public void actionPerformed(ActionEvent event)
             {
                System.exit(0);         //推出程序 推出程序 推出程序 推出程序 推出程序推出
             }
          });
    }

    private JLabel label;
    private JFileChooser chooser;
    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGHT = 400;

}

原创粉丝点击