Buenas! Paso a comentarles el problema. Tengo que imprimir el contenido de un JPanel. Lo que hice fue guardarlo como imagen y de ahí mandarlo a imprimir. El problema que cuando guardo el JPanel como imagen se me guarda el JMenuBar.
BufferedImage img = getScreenShot(panel.getRootPane() ); (siendo "panel" mi JPanel).
Pense que mi posible solución sería obtener la esquina superior izquierda del JFrame y a partir de ahí restarle a la medida en 'y' la altura del JMenuBar:
public int getCoordenadaX(){
int x; x = this.getLocation().x; return x; }
public int getCoordenadaY(){
int y; y = this.getLocation().y; return y; }
int x = this.getCoordenadaX(); int y = this.getCoordenadaY() - menuBar.getHeight();
BufferedImage img2 = img.getSubimage(x, y, ancho, alto);
Pero no anda, me tira el siguiente error:
java.awt.image.RasterFormatException: (x + width) is outside raster
Si alguien me pudiese dar una mano se lo agradecería.
Buenas! Paso a comentarles el problema. Tengo que imprimir el contenido de un JPanel. Lo que hice fue guardarlo como imagen y de ahí mandarlo a imprimir. El problema que cuando guardo el JPanel como imagen se me guarda el JMenuBar.
BufferedImage img = getScreenShot(panel.getRootPane() ); (siendo "panel" mi JPanel).
Pense que mi posible solución sería obtener la esquina superior izquierda del JFrame y a partir de ahí restarle a la medida en 'y' la altura del JMenuBar:
public int getCoordenadaX(){
int x;
x = this.getLocation().x;
return x;
}
public int getCoordenadaY(){
int y;
y = this.getLocation().y;
return y;
}
int x = this.getCoordenadaX();
int y = this.getCoordenadaY() - menuBar.getHeight();
BufferedImage img2 = img.getSubimage(x, y, ancho, alto);
Pero no anda, me tira el siguiente error:
java.awt.image.RasterFormatException: (x + width) is outside raster
Si alguien me pudiese dar una mano se lo agradecería.