JFileChooser转换为.jar时不起作用

时间:2019-03-09 16:21:20

标签: java

所以我对编码还很陌生,所以我今年才开始在学校学习comp sci。在我的一个程序中,我试图使用JFileChooser和JButton,所以我只复制了一些在网上找到的代码,并对其进行了修改,因为我还不知道如何使用try / catch:

    JButton button = new JButton("Select File");
    button.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            String path;
            try {
                path = new File(".").getCanonicalPath();
                path = path.substring(0, path.length() - 7);
                JFileChooser jf = new JFileChooser();
                jf.setFileSelectionMode(JFileChooser.FILES_ONLY);
                jf.setMultiSelectionEnabled(false);
                int returnValue = jf.showOpenDialog(null);
                if (returnValue == JFileChooser.APPROVE_OPTION) 
                {
                    int n = ptoj.convert(jf.getSelectedFile().getAbsolutePath(), path);
                    for (int i = 0; i < n; i++)
                    {
                        if (i < 10)
                        {   
                            PictureTester.split(path + "yourFile-0" + i + ".jpg", i);
                        }
                        else 
                        {
                            PictureTester.split(path + "yourFile-" + i + ".jpg", i);
                        }
                    }
               }
            } catch (Exception e1) {
                e1.printStackTrace();
            }

        }

    });
    j.add(button);

问题是,当我在Eclipse中运行它时,它可以正常运行,但是当我将其导出到.jar文件时,该程序将打开,似乎可以正常运行,但是当我尝试按下按钮时,什么也没发生。它不会崩溃或发生任何事情,只是无论我按下按钮多少次都不会发生任何事情。

以下是该类的代码,先前的代码正在从该类中获取方法“ convert”:

public class ptoj {
public static int convert(String n, String path) throws Exception{
    try (final PDDocument document = PDDocument.load(new File(n))){
        PDFRenderer pdfRenderer = new PDFRenderer(document);
        for (int page = 0; page < document.getNumberOfPages(); ++page)
        {
            BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
            String fileName;
            if (page < 10)
            {
                fileName = path + "yourFile-0" + page + ".jpg";
            }
            else
            {
                fileName = path + "yourFile-" + page + ".jpg";
            }
            ImageIOUtil.writeImage(bim, fileName, 300);
        }
        document.close();
        return document.getNumberOfPages();
    } catch (IOException e){
        System.err.println("Exception while trying to create pdf document - " + e);
    }
    return 0;
}

}

0 个答案:

没有答案