как указать путь до папки куда надо будет сохранять фотки? Java

вот мой код(не судите строго я новичок и некоторые фрагменты брал из других проектов + туповат)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
public class Prog {
public static void main(String[] args) {
okno nf = new okno();
}
}
class okno extends JFrame {
   private JTextField text;
   private int kol = 0;
   private String path;
   private Timer tm;
   private Robot rob;
   public void Path() {
       String path = text.getText();
       this.path = path;
   }
public okno() {
Container cont = getContentPane();
JButton btn = new JButton("Сохранять скрины экрана раз в 10 секунд");
btn.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e) {
       try
       {
       rob = new Robot();
       }
       catch (Exception e1) {}
       tm = new Timer(10000,new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           saveScreen();
       }
       }); 
   tm.start();
   }
});
btn.setSize(500, 100);
btn.setLocation(150, 50);
JPanel pan = new JPanel();
pan.add(btn);
pan.setLayout(null);

Font textFont = new Font("arial", 2, 20);
text = new JTextField("Укажите путь");
text.setFont(textFont);
text.setBounds(285, 10, 300, 35);
text.setForeground(Color.BLUE);
text.setBackground(Color.WHITE);
pan.add(text);
cont.add(pan);
setBounds(0, 0, 800, 700);
setTitle("Screen");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private void saveScreen()
{
kol++;
Dimension dm = Toolkit.getDefaultToolkit().getScreenSize();
int w = dm.width;
int h = dm.height;
try
{
  BufferedImage img = 
        rob.createScreenCapture(new Rectangle(0,0,w,h));
ImageIO.write(img, "PNG", new File(path + kol + ".png"));
}
catch (Exception e) {  }
}
} ```

Ответы (1 шт):

Автор решения: Agzam4

Вот примеры:

Сохранит в C:\Users\Имя_пользователя\

new File(System.getProperty("user.home") + "\\" + kol + ".png")

Сохранит туда же, где находится Ваша программа

new File(System.getProperty("user.dir") + "\\" + kol + ".png")

Сохранит туда, откуда была запущенна Ваша программа

new File(kol + ".png")

Сохранит в "C:/Test/Hello_World"

new File("C:/Test/Hello_World" + "\\" + kol + ".png")

Этот код, даст пользователю выбрать место сохранения:

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
public class Prog {
    public static void main(String[] args) {
        okno nf = new okno();
    }
}
class okno extends JFrame {
    private int kol = 0;
    private String path;
    private Timer tm;
    private Robot rob;
    public void Path() {
        this.path = path;
    }
    public okno() {
        JFileChooser fc = new JFileChooser();
        fc.setDialogTitle("Открыть файл"); // Заголовок
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        if(fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION){ // showOpenDialog - будет кнопка с надписью "Open", showSaveDialog - "Save"
               path = fc.getSelectedFile() + "";
        }else {
            path = "";
        }
        
        Container cont = getContentPane();
        JButton btn = new JButton("Сохранять скрины экрана раз в 10 секунд");
        btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                try
                {
                    rob = new Robot();
                }
                catch (Exception e1) {}
//              tm = new Timer(10000, new ActionListener() {
//                  public void actionPerformed(ActionEvent e) {
//                      saveScreen();
//                  }
//              }); 
//              tm.start();
            }
        });
        btn.setSize(500, 100);
        btn.setLocation(150, 50);
        JPanel pan = new JPanel();
        pan.add(btn);
        pan.setLayout(null);

        cont.add(pan);
        setBounds(0, 0, 800, 700);
        setTitle("Screen");
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    private void saveScreen()
    {
        kol++;
        Dimension dm = Toolkit.getDefaultToolkit().getScreenSize();
        int w = dm.width;
        int h = dm.height;
        try
        {
            BufferedImage img = 
                    rob.createScreenCapture(new Rectangle(0,0,w,h));
            ImageIO.write(img, "PNG", new File(path + kol + ".png"));
        }
        catch (Exception e) {  }
    }
}
→ Ссылка