a881127b 2010-07-07 10:18
浏览 303
已采纳

在批量转换文件文件之前设置转换后文件存取目录目录

我写了个程序批量读取pdf文件到word中,现在的问题是在批量转换之前我要用户指定转换后文件的存放目录,这个用JChooser可以实现吗,我用如下代码:
[code="java"]fileDirectory=new JFileChooser();
int returnVal = fileDirectory.showSaveDialog(this);
System.out.println("returnVal:"+returnVal);
if(returnVal == fileDirectory.APPROVE_OPTION) {
saveDirectory=fileDirectory.getCurrentDirectory().toString();
System.out.println("choose the dictory is :"+saveDirectory);
}[/code]
但是对话框出来后,若没有选择文件,只是选择目录点击保存没有任何响应。

  • 写回答

1条回答 默认 最新

  • xanpeng 2010-07-07 13:07
    关注

    你需要设置 SelectionMode: chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    参见示例代码

    [code="java"]
    package com.xan.fortest;

    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;

    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JPanel;

    public class SwingTester extends JPanel implements ActionListener {
    private static final long serialVersionUID = 4537424836172729931L;

    JButton go;
    
    JFileChooser chooser;
    private final static String chooserTitle = "Folder Chooser";
    
    public SwingTester() {
        go = new JButton("Choose Folder");
        go.addActionListener(this);
        add(go);
    }
    
    public void actionPerformed(ActionEvent e) {
        chooser = new JFileChooser();
        chooser.setCurrentDirectory(new java.io.File("."));
        chooser.setDialogTitle(chooserTitle);
    
        /******  SHOULD SET THIS **********/
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        //
        // disable the "All files" option.
        //
        chooser.setAcceptAllFileFilterUsed(false);
        //    
        if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
            System.out.println("getCurrentDirectory(): "
                    + chooser.getCurrentDirectory());
            System.out.println("getSelectedFile() : "
                    + chooser.getSelectedFile());
        } else {
            System.out.println("No Selection ");
        }
    }
    
    public Dimension getPreferredSize() {
        return new Dimension(400, 400);
    }
    
    public static void main(String s[]) {
        JFrame frame = new JFrame("");
        SwingTester panel = new SwingTester();
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        frame.getContentPane().add(panel, "Center");
        frame.setSize(panel.getPreferredSize());
        frame.setVisible(true);
    }
    

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)