Hola Experto, Tengo una duda, quisiera saber si se puede imprimir los gráficos generados en un applet, es decir en un applet realizo unos gráficos y al terminar de cargar el applet quiero enviar a la impresora por default, se puede hacer esto, además puedo grabarlo como un archivo .jpeg? De atemano muchas gracias
Respondiendo a tú pregunta, si que se puede imprimir los gráficos generados en un applet. Lo puedes hacer de la siguiente forma: - Te creas un objeto de la clase Canvas. - Utilizas el método paint() de la clase Canvas, para dibujar lo que quieras. - Te creas un objeto de la clase PrintJob. - Utilizas el método printAll() de la clase Canvas, pasandole como parametro el objeto printjob. Te adjunto un ejemplo: import java.awt.*; import java.awt.event.*; import java.util.Properties; import ju.ch09.*; public class PrintSampleApp extends Frame { Object menuItems[][] = {{"File","Print","-","Exit"}}; MenuItemHandler mih = new MenuItemHandler(); MyMenuBar menuBar = new MyMenuBar(menuItems,mih,mih); MyCanvas canvas = new MyCanvas(); Toolkit toolkit; int screenWidth = 500; int screenHeight = 500; public static void main(String args[]){ PrintSampleApp app = new PrintSampleApp(); } public PrintSampleApp() { super("PrintSampleApp"); setup(); setSize(screenWidth,screenHeight); addWindowListener(new WindowEventHandler()); show(); } void setup() { setMenuBar(menuBar); toolkit=getToolkit(); add("Center",canvas); } class MenuItemHandler implements ActionListener, ItemListener { public void actionPerformed(ActionEvent ev){ String s=ev.getActionCommand(); String name="Test print job"; Properties properties=new Properties(); if(s=="Exit"){ System.exit(0); }else if(s=="Print"){ PrintJob pj=toolkit.getPrintJob(PrintSampleApp.this, name,properties); if(pj!=null){ canvas.printAll(pj.getGraphics()); pj.end(); } } } public void itemStateChanged(ItemEvent e){ } } class WindowEventHandler extends WindowAdapter { public void windowClosing(WindowEvent e){ System.exit(0); } } } class MyCanvas extends Canvas { public void paint(Graphics g){ Dimension size=getSize(); int width=size.width; int height=size.height; int x1=(int) (width*0.1); int x2=(int) (width*0.9); int y1=(int) (height*0.1); int y2=(int) (height*0.9); g.drawRect(x1,y1,x2-x1,y2-y1); g.drawOval(x1,y1,x2-x1,y2-y1); g.drawLine(x1,y1,x2,y2); g.drawLine(x2,y1,x1,y2); String text = "Print Me! "; text+=text; text+=text; g.drawString(text,x1,(int)((y1+y2)/2)); g.dispose(); } }