Sia JFrame che JPanel sono sottoclassi di Component che ha il metodo getBounds (senza parametri), il quale ti fornisce le coordinate che comprendono l'area dello schermo occupata dal componente; ottenute queste (te le restituisce sotto forma di Rectangle) usale per fare lo screen come nell'esempio che hai postato.Originariamente inviato da Snake17x
Ciao ragazzi girando su internet ho trovato questa classe
Vorrei che al posto di fare lo screenshot dell'intero Desktop, facesse lo screenshot di un JFrame è possibile? Ci ho provato in diversi modi ma mi sono dannato senza risultati.codice:import java.awt.AWTException; import java.awt.Rectangle; import java.awt.Robot; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.awt.Dimension; import java.awt.*; import javax.imageio.ImageIO; public class RobotExp { public static void main(String[] args) { try { Robot robot = new Robot(); // Capture the screen shot of the area of the screen defined by the rectangle Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); BufferedImage bi=robot.createScreenCapture(new Rectangle(800,800)); ImageIO.write(bi, "jpg", new File("graphics1.jpg")); } catch (AWTException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Credo che la parte da modificare sia:
O sbaglio? Ma come faccio a passargli il JPANEL piuttosto che lo screensize?codice:Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();