как указать путь до папки куда надо будет сохранять фотки? 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) { }
}
}