我想实现简易画板的文件保存功能,但是无法在指定位置保存文件,即无法获取在文件对话框中自定义的保存路径,而把文件保存在项目所在目录。朋友,请赐教!
--------------------------------------------------------------------------------------
       save.addActionListener(new ActionListener()   //"保存"按钮的监听器
        {
         public void actionPerformed(ActionEvent e)
         { 
         JFileChooser fileChooser = new JFileChooser();
         fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
         int result = fileChooser.showSaveDialog(p0);//p0是绘图面板对象,即fileChooser的父组件
         if (result == JFileChooser.CANCEL_OPTION) 
         { return;}
         File f = fileChooser.getSelectedFile();
         f.canWrite();
             if (f.getName().equals(""))
             {
                JOptionPane.showMessageDialog(fileChooser, "无效的文件名",
                            "错误提示", JOptionPane.ERROR_MESSAGE);
             } 
             else 
             {
              try 
              {
              BufferedWriter bw = new BufferedWriter(new FileWriter(f.getName())); //此处!f.getName()无法获取文件名,但硬编码则可,例如赋值"E:\test.txt"        
              for(int j = 0; j < p0.m_vectorSet.size(); j ++)
              {
              Vector<Point> lines = p0.m_vectorSet.get(j);
              Color cols  = p0.m_colorset.get(j);
              BasicStroke stk  = (BasicStroke) p0.m_strokeset.get(j);
              bw.write(Integer.toString(cols.getRed())+" ");
              bw.write(Integer.toString(cols.getGreen())+" ");
              bw.write(Integer.toString(cols.getBlue())+" ");
              bw.newLine();
     bw.write(Integer.toString((int)stk.getLineWidth()));
     bw.newLine();
     for(int k = 0; k < lines.size(); k ++)
     {
     Point pt = lines.get(k);
     bw.write(Integer.toString(pt.x)+" ");
     bw.write(Integer.toString(pt.y)+" ");
     bw.newLine();
     }
     bw.newLine();
              }
              bw.close();
              } 
              catch (IOException ioe) 
              {
              ioe.printStackTrace();
              }
             }
         }
        });