我写的是一个局域网即时通信的系统  
主窗体是Jframe类对象
这个有个文本区  就是用来显示聊天记录的 
我在文本区里 加了一个邮件弹出菜单
在菜单上有加了事件的监听
目的是 但我单击右键 时  会弹出菜单但点击这个菜单中的一个菜单项是  会出现一个文件保存对话框
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jmi1) {
System.out.print(1);
int i = JOptionPane.showConfirmDialog(this, "你确定要清理当前的聊天记录",
"确认对话框", JOptionPane.YES_NO_OPTION);
if (i == JOptionPane.YES_OPTION) { jTextArea1.setText(null);
}
if (i == JOptionPane.NO_OPTION) { } }//这是处理清空文本去的。。
if (e.getSource() == jmi2) {
// File jilu =new java.io.File("jilu.txt");
// java.io.File jilu =new java.io.File("jilu.txt");
try {
FileDialog baoFileDialog = new FileDialog(this, "保存你的聊天记录",
FileDialog.SAVE);
baoFileDialog.setFile("聊天记录.txt");
baoFileDialog.setVisible(true); File file = new File(baoFileDialog.getDirectory(),
baoFileDialog.getFile()); FileWriter tofile = new FileWriter(file);
BufferedWriter out = new BufferedWriter(tofile);
out.write(jTextArea1.getText(), 0, (jTextArea1.getText())
.length());
out.close();
tofile.close(); } catch (IOException e1) {
// TODO Auto-generated catch block
// e1.printStackTrace();
}//z这就是保存文本去里的信息用的但在这里 程序运行的时候  会抛出一个异常
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.io.File.<init>(File.java:262)
at com.AVE.gui.Gui.actionPerformed(Gui.java:837)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1223)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1264)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

在clas文件中看 带色的里抛出的。。
就是  public File(String parent, String child) {
if (child == null) {
    throw new NullPointerException();
}
if (parent != null) {
    if (parent.equals("")) {
this.path = fs.resolve(fs.getDefaultParent(),
       fs.normalize(child));
    } else {
this.path = fs.resolve(fs.normalize(parent),
       fs.normalize(child));
    }
} else {
    this.path = fs.normalize(child);
我想知道这是什么问题   
还有 我在Jframe中加了一个JDesktopPane  之后在这里面有加了一个
JInternalFrame
但在JInternalFrame
里的文本去中 我用和在Frame中一样的办法 处理演出对话框缺不行。。
也就是下面这话没法实现   这是为什么呢
FileDialog baoFileDialog = new FileDialog(this, "保存你的聊天记录",
FileDialog.SAVE);

解决方案 »

  1.   

    你确定 你要调用的都 new 了?
      

  2.   

    baoFileDialog.setFile("聊天记录.txt"); 
    可能是因为这个文件不存在。
    你试试在这句之前加上:
    File history = new File(baoFileDialog.getDirectory(), "聊天记录.txt");
    if(!history.exists()){
        history.createNewFile();
    }
    history = null;
      

  3.   

    还是有异常抛出  
    对了   麻烦问你一下     怎么在JInternalFrame  上加一个jTextArea 之后在jTextArea加一个右键菜单但菜单上  有事件  能触发程序弹出一个保存对话框。。在Frame上我做到了  但在JInternalFrame 上 是不是不能啊? 谢谢你了 帮帮我 我现在很着急