当前位置:编程学习 > JAVA >>

文件对话框!朋友,请赐教!

     我想实现简易画板的文件保存功能,但是无法在指定位置保存文件,即无法获取在文件对话框中自定义的保存路径,而把文件保存在项目所在目录。朋友,请赐教!


--------------------------------------------------------------------------------------
       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();
              }
             }
         }
        }); --------------------编程问答-------------------- 使用String filePath = fileChooser.getSelectedFile().getAbsolutePath();
然后用正则表达式截取文件名 --------------------编程问答--------------------
引用 1 楼 limit111 的回复:
使用String filePath = fileChooser.getSelectedFile().getAbsolutePath();
然后用正则表达式截取文件名


恩恩,刚试过,可行!但是仍然疑惑getName()无法获取文件名!很想很想弄清楚问题到底出在哪里!! --------------------编程问答-------------------- 那你用getName()打印出来的什么东西?
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,