Ich habe 2 Probleme beim ausführen meines Jar-Files:
1. Problem: Die Druckfunktion wird im Jar-File nicht ausgeführt. In meinem Editor JCreator schon.
Listener für die Schaltfläche Drucken
Klasse Formular
2. Problem: bild.jpg wird nicht angezeigt. Ich habe meine Bilder im Ordner img/ liegen. Führe ich das Programm in der Entwicklungsumgebung aus, wird mir das Bild an der richtigen Stelle angezeigt. Sobald ich das Jar-File erzeugt habe und dieses ausführe, wird es nicht mehr ausgeführt. Das jar-File erzeuge ich wie folgt:
1. Problem: Die Druckfunktion wird im Jar-File nicht ausgeführt. In meinem Editor JCreator schon.
Listener für die Schaltfläche Drucken
Code:
class druckenListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
pj = PrinterJob.getPrinterJob();
try
{
if (pj.printDialog())
{
paper = new Paper();
paper.setSize(594.936, 841.536); // Set to A4 size.
paper.setImageableArea(30, 30, 530, 780);//set margins
pageFormat = new PageFormat();
pageFormat.setPaper(paper);
size = reiter1.getSize();
//Größe der einzelnen "Reiter" ermitteln
if (tp.getSelectedIndex() == 0)
{
size = reiter1.getSize();
}
else if(tp.getSelectedIndex() == 1)
{
size = reiter2.getSize();
}
else if(tp.getSelectedIndex() == 2)
{
size = reiter3.getSize();
}
else if(tp.getSelectedIndex() == 3)
{
size = reiter4.getSize();
}
//1. Reiter drucken
reiter1.setSize(size);
formular = new Formular(reiter1);
pj.setPrintable(formular, pageFormat);
pj.print();
//2. Reiter drucken
reiter2.setSize(size);
formular = new Formular(reiter2);
pj.setPrintable(formular, pageFormat);
pj.print();
//3. Reiter drucken
reiter3.setSize(size);
formular = new Formular(reiter3);
pj.setPrintable(formular, pageFormat);
pj.print();
//4. Reiter drucken
reiter4.setSize(size);
formular = new Formular(reiter4);
pj.setPrintable(formular, pageFormat);
pj.print();
}
}
catch (PrinterException ex)
{
ex.printStackTrace();
}
}
}
Klasse Formular
Code:
/** Die Klasse Formular übernimmt die Aufgabe des Druckens**/
class Formular implements Printable
{
private Container container;
private int index = -1;
private Rectangle page = new Rectangle(0, 0, 0, 0);
Formular(Container container)
{
this.container = container;
}
public int print(Graphics g, PageFormat pageFormat, int pageIndex)
{
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
int iWidth = (int) pageFormat.getImageableWidth();
int iHeight = (int) pageFormat.getImageableHeight();
double scaleFactor = (double) iWidth / (double) container.getWidth();
while (index < pageIndex)
{
if (pageIndex > container.getHeight() * scaleFactor / iHeight)
{
return NO_SUCH_PAGE;
}
page.y += page.height;
page.width = (int) (iWidth / scaleFactor);
page.height = (int) (iHeight / scaleFactor);
index++;
}
g2d.scale(scaleFactor, scaleFactor);
g2d.translate(0, -page.y);
g2d.clip(page);
container.print(g2d);
return PAGE_EXISTS;
}
}
2. Problem: bild.jpg wird nicht angezeigt. Ich habe meine Bilder im Ordner img/ liegen. Führe ich das Programm in der Entwicklungsumgebung aus, wird mir das Bild an der richtigen Stelle angezeigt. Sobald ich das Jar-File erzeugt habe und dieses ausführe, wird es nicht mehr ausgeführt. Das jar-File erzeuge ich wie folgt:
Code:
jar -cfvm Programm.jar manifest.MV *.class org/ imgs/