在捕获屏幕之前请求保存用户的文件?

时间:2014-04-21 09:58:56

标签: java

Goodmorning,我一直试图找出这个问题一段时间,但所有的答案都与GUI有关,而不是我在我的代码中实现的。

我有一个非常简单的截屏程序,它捕获当前用户的屏幕并将其存储在程序所在的任何位置(在我的案例中为桌面)。

我想给用户提供选择所需文件的选项,或者创建一个新文件来存储它,而不需要弹出GUI框架。

这可能吗?如果是的话,我怎么能实现这个目标呢?

在此先感谢,如果您需要代码的来源,我很乐意发布: - )

主要来源:

public static void main(String[] args) throws Exception{
    try{
        Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
        Robot myRobot = new Robot();
        BufferedImage image = myRobot.createScreenCapture(new Rectangle(size));
        File save_patch = new File("ScreenCapture.jpg");
        ImageIO.write(image, "JPG", save_patch);
    }catch(Exception e){
        System.out.println("Problem");
    }
}

2 个答案:

答案 0 :(得分:0)

Scanner s = new Scanner(System.in);

System.out.print("Enter file storage location: ");
String input = s.nextLine();

从这里,您可以获取用户的输入,并将其添加到File对象。

if(file.isFile()) {
   File save_patch = new File(input);

   // Perform the save using this file object. 
}

修改

将来,请尝试更清楚地说明您的问题。

  

我想给用户提供选择所需文件的选项,或者创建一个新文件来存储它,而不需要弹出GUI框架。

这不是最简洁的要求。您可以使用this link查看如何允许用户选择文件。

答案 1 :(得分:0)

您需要的是一个文件选择对话框。阅读它:http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html

可能看起来像这样(未经测试):

public static void main(String[] args) throws Exception{
    try{
        Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
        Robot myRobot = new Robot();

        JFileChooser fileChooser = new JFileChooser();
        int ret = fileChooser.showOpenDialog(null);
        if (ret == JFileChooser.APPROVE_OPTION) {
            File file = fileChooser.getSelectedFile();

            BufferedImage image = myRobot.createScreenCapture(new Rectangle(size));
            File save_patch = new File(file.getName());
            ImageIO.write(image, "JPG", save_patch);
        }
    }catch(Exception e){
        System.out.println("Problem");
    }
}