# Fehler bei Drucken im Applet



## Clubsch (18. Feb 2005)

Hab ein Problem: Sollte drucken, funktioniert aber nicht! Bitte um Hilfe wo der Fehler liegt (Applet wird nicht gezeichnet, kompilieren geht ohne Fehler)
Datei 1:


```
import java.awt.geom.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.print.PrinterJob;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
import ShapeDruck;


public class TryShape extends JPanel
                         implements Printable
{

public TryShape()
{
}

public void paint(Graphics g)
{ drawSh((Graphics2D) g);
}

public int print(Graphics g, PageFormat pf, int pi)
                          throws PrinterException {
    if (pi >= 1) {
        return Printable.NO_SUCH_PAGE;
    }
    drawSh((Graphics2D) g);
    return Printable.PAGE_EXISTS;
}

public void drawSh(Graphics2D g2) {
  g2.setColor(new Color(200,200,200));
    g2.fillRect(20,20,500,500);

}

}
```


Datei 2:

```
mport java.awt.geom.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.print.PrinterJob;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
import ShapeDruck;

public class shapesHelp extends JApplet
 implements ActionListener
{	JButton please = new JButton("Druck");
    TryShape Shapes = new TryShape();

	public shapesHelp()
	{
	}



	public void init()
	{ Container c = this.getContentPane();
		c.setLayout(new GridLayout(2,1));
		c.add(Shapes);
		c.add(please);

		please.addActionListener(this);
	}


public void actionPerformed(ActionEvent e)
{if(e.getSource()== please)

{  PrinterJob printJob = PrinterJob.getPrinterJob();
        printJob.setPrintable(Shapes);
        if (printJob.printDialog())
        {
            try {
                printJob.print();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
		}
}
}
}
```

Vielen Vielen Dank für die Hilfe

mfg


----------



## Sky (21. Feb 2005)

Hast Du mal versucht, einfach eine andere Farbe in der drawSh-Methode zu verwenden. Dieses Grau, erinnert doch sehr an die Standard-Farbe:


```
public void drawSh(Graphics2D g2) { 
  g2.setColor(new Color(255,0,0));  // mal in Rot versuchen!
    g2.fillRect(20,20,500,500); 

}
```


----------



## Bleiglanz (22. Feb 2005)

Java Konsole im Browser anschauen?

Bist du dir sicher, dass Applets einfach so "drucken" dürfen?


----------



## Sky (22. Feb 2005)

Bleiglanz hat gesagt.:
			
		

> Java Konsole im Browser anschauen?
> 
> Bist du dir sicher, dass Applets einfach so "drucken" dürfen?



Nein, Applet "dürfen" per se nicht einfach drucken. Aber vom JRE kommt quasi automatisch die Rückfrage "Hey hier will jemand drucken, biste einverstanden" und durch klick auf "ja" gehts dann weiter. Ach ja, wenn das Applet signiert wurde, so kommt genannte Abfrage nicht.


----------

