salut
je voudrais faire un printscreen de l'écran et sauvegarder ça dans un fichier
une idée?
[Modéré par Didier]
Ajout de tag dans le titre
Lire les règles du forum : Règles du forum Java
salut
je voudrais faire un printscreen de l'écran et sauvegarder ça dans un fichier
une idée?
[Modéré par Didier]
Ajout de tag dans le titre
Lire les règles du forum : Règles du forum Java
En plus détaillé qu'est-ce que tu attends ? de printer une fenêtre créee en Java ?
@++
Envoyé par GLDavid
je voudrais par exemple cliquer sur un bouton et sauvegardé ce qui est vu à l'écran dans un fichier
C'est dans la
http://java.developpez.com/faq/java/..._capture_ecran
après avoir pris du code à gauche et à droite voici ce que ça donne
je voudrais votre avis afin d'avoir de bonne pratique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; import javax.imageio.*; import java.util.Calendar; public class screenshot { private int tempattente; String nomfichier; public String getNomFichier(){ return nomfichier; } public screenshot(){ tempattente = 1; Calendar calendar = Calendar.getInstance(); String YY = (calendar.get(Calendar.YEAR)+"").substring(2); String MM = ((calendar.get(Calendar.MONTH)+1)+""); String DD = (calendar.get(Calendar.DAY_OF_MONTH)+""); String HH = (calendar.get(Calendar.HOUR)+""); String MI = (calendar.get(Calendar.MINUTE)+""); int AMint = (calendar.get(Calendar.AM_PM)); String AMStr; if (AMint == 0) {AMStr = "AM"; } else {AMStr = "PM"; } if (MM.length() == 1) { MM = "0"+MM; } if (DD.length() == 1) { DD = "0"+DD; } if (HH.length() == 1) { HH = "0"+HH; } if (MI.length() == 1) { MI = "0"+MI; } nomfichier = YY+"-"+MM+"-"+DD+"_"+HH+"-"+MI+"-"+AMStr+".png"; } public void takeSnapShot()throws AWTException{ Toolkit toolkit = Toolkit.getDefaultToolkit(); Dimension screenSize = toolkit.getScreenSize(); Rectangle screenRect = new Rectangle(screenSize); Robot robot = new Robot(); BufferedImage image = robot.createScreenCapture(screenRect); try { ImageIO.write(image, "png", new File(getNomFichier())); } catch (IOException ioe) { System.out.println(ioe.toString()); } } public static void main(String[] args) throws AWTException{ screenshot tmp = new screenshot(); tmp.takeSnapShot(); } }
il y a t'il moyen d'éviter de devoir utiliser AWTException dans le main?
Au lieu d'avoir
Tu peux utiliser le SimpleDateFormat comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Calendar calendar = Calendar.getInstance(); String YY = (calendar.get(Calendar.YEAR)+"").substring(2); String MM = ((calendar.get(Calendar.MONTH)+1)+""); String DD = (calendar.get(Calendar.DAY_OF_MONTH)+""); String HH = (calendar.get(Calendar.HOUR)+""); String MI = (calendar.get(Calendar.MINUTE)+""); int AMint = (calendar.get(Calendar.AM_PM)); String AMStr; if (AMint == 0) {AMStr = "AM"; } else {AMStr = "PM"; } if (MM.length() == 1) { MM = "0"+MM; } if (DD.length() == 1) { DD = "0"+DD; } if (HH.length() == 1) { HH = "0"+HH; } if (MI.length() == 1) { MI = "0"+MI; } nomfichier = YY+"-"+MM+"-"+DD+"_"+HH+"-"+MI+"-"+AMStr+".png";
Attention que je n'ai pas testé. Mais cela devrait donner qqchose de semblable à ce que tu fais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DateFormat df = new SimpleDateFormat("YY'-'MM'-'DD'_'hh'-'mm'-'a"); nomFichier = df.format(new Date())+".png";
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager