首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打开文件会产生一个java.lang.NullPointerException

打开文件会产生一个java.lang.NullPointerException
EN

Stack Overflow用户
提问于 2013-07-31 16:22:54
回答 2查看 2K关注 0票数 2

我有一个JFrame,在我有JButton的框架上,我想要的是当这个文件被点击时,用户可以使用java JFileChooser加载一个文件。

我宣布FileChooser是这样的。

代码语言:javascript
运行
复制
JFileChooser fc;

下面是按钮的动作监听器中的代码。

代码语言:javascript
运行
复制
JButton btnLoad = new JButton("Load .txt");
    btnLoad.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            int returnVal = fc.showOpenDialog(OpenFile.this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                //This is where a real application would open the file.
                System.out.println("Opening: " + file.getName() + ".");
            } else {
                System.out.println("Open command cancelled by user.");
            }


        }
    });

它给我带来的错误是

线程“AWT 0”中的异常: maple.Netflix$2.actionPerformed(Netflix.java:73) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster。未知源(未知源)在javax.swing.JComponent.processMouseEvent(Unknown源(java.awt.Component.processMouseEvent(未知源)),java.awt.Component.processEvent(未知源),java.awt.Container.processEvent(未知源),java.awt.Component.dispatchEventImpl(未知源),java.awt.Container.dispatchEventImpl(未知源),java.awt.Component.dispatchEvent(未知源),java.awt.Component.processEvent(未知源),java.awt.Container.processEvent(未知源),java.awt.Component.dispatchEventImpl(未知源),java.awt.Container.dispatchEventImpl(未知源),java.awt.Component.dispatchEvent(未知源),java.awt.LightweightDispatcher (未知源)。java.awt.LightweightDispatcher.processMouseEvent(Unknown源(未知源)在java.awt.LightweightDispatcher.dispatchEvent(Unknown源(RetargetMouseEvent),java.awt.Container.dispatchEventImpl(未知源),java.awt.Window.dispatchEventImpl(未知源),java.awt.Component.dispatchEvent(未知源),java.awt.EventQueue.dispatchEventImpl(未知源),java.awt.EventQueue.access$200(未知源),java.awt.EventQueue$3 (未知源)。运行(未知源)在java.awt.EventQueue$3.运行(未知源)在java.security.AccessController.doPrivileged(Native方法)在java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown源)在java.awt.EventQueue$4.运行(未知源)在java.awt.EventQueue$4.运行(未知源)在java.security.AccessController.doPrivileged(Native方法)在java.security.ProtectionDomain$1)。(未知源)在java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown源)在java.awt.EventDispatchThread.pumpEventsForFilter(Unknown源)在java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown源)在java.awt.EventDispatchThread.pumpEvents(Unknown源)在java.awt.EventDispatchThread.pumpEvents(Unknown源)在java.awt.EventDispatchThread.run(未知源)

这是第73线。

代码语言:javascript
运行
复制
int returnVal = fc.showOpenDialog(Netflix.this);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-31 16:24:27

仅仅声明JFileChooser变量是不够的,因为您需要先将引用变量fc初始化为一个有效的对象,然后再使用它。这与任何其他引用变量相同。

代码语言:javascript
运行
复制
JFileChooser fc = new JFileChooser();
票数 5
EN

Stack Overflow用户

发布于 2013-07-31 16:26:06

fc的值为null。在调用方法之前,需要将其设置为适当对象的对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17975780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档