Tach zusammen!!!
Ich muss aus einer Anwendung heraus kurze Texte drucken. Am besten wäre es wenn ich JWrappingLabel (Swing) nutzen könnte wegen dem automatischen Zeilenumbruch. Nun versuche ich mit allen Miteln Dialogelemente auf den Drucker zu bekommen. Mit dem untenstehenden Schnipsel gelingt es zumindest Texte (mittels drawString()) und Grafik zu drucken. Aber keine der Methoden print(),printAll() oder printComponents() aus Component führt zum gewünschten Erfolg. Ist der unten gezeigte Ansatz (ich habe der EInfachheit halber jetzt keine JFCs verwendet) grundsätzlich richtig oder bin ich absolut auf dem Holzweg???
Schönen Dank im voraus
Rolf
/* Druck-Test */
import java.awt.*;
import java.awt.event.*;
public class PrinterTest
extends Frame
{
public static void main(String[] args) {
PrinterTest wnd = new PrinterTest();
}
public PrinterTest() {
super("PrinterTest");
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
}
);
setBackground(Color.lightGray);
setSize(400,400);
setVisible(true);
// 2 sek. Delay
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// notting
}
printTestPage();
}
public void paint(Graphics g) {
}
public void printTestPage() {
PrintJob pjob = getToolkit().getPrintJob(this,"Testseite",null);
if (pjob != null) {
// Drucken
Graphics pg = pjob.getGraphics();
if (pg != null) {
// Text
pg.setFont(new Font("TimesRoman",Font.PLAIN,24));
pg.drawString("Testseite",40,70);
// Formularelemente
Panel pan = new Panel();
pan.setLayout(null);
Label lab = new Label("Dies ist ein Testlabel");
lab.setBounds(50,100,250,24);
pan.add(lab);
pan.printComponents(pg);
//Seite ausgeben
pg.dispose();
}
pjob.end();
}
}
}
Ich muss aus einer Anwendung heraus kurze Texte drucken. Am besten wäre es wenn ich JWrappingLabel (Swing) nutzen könnte wegen dem automatischen Zeilenumbruch. Nun versuche ich mit allen Miteln Dialogelemente auf den Drucker zu bekommen. Mit dem untenstehenden Schnipsel gelingt es zumindest Texte (mittels drawString()) und Grafik zu drucken. Aber keine der Methoden print(),printAll() oder printComponents() aus Component führt zum gewünschten Erfolg. Ist der unten gezeigte Ansatz (ich habe der EInfachheit halber jetzt keine JFCs verwendet) grundsätzlich richtig oder bin ich absolut auf dem Holzweg???
Schönen Dank im voraus
Rolf
/* Druck-Test */
import java.awt.*;
import java.awt.event.*;
public class PrinterTest
extends Frame
{
public static void main(String[] args) {
PrinterTest wnd = new PrinterTest();
}
public PrinterTest() {
super("PrinterTest");
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
}
);
setBackground(Color.lightGray);
setSize(400,400);
setVisible(true);
// 2 sek. Delay
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// notting
}
printTestPage();
}
public void paint(Graphics g) {
}
public void printTestPage() {
PrintJob pjob = getToolkit().getPrintJob(this,"Testseite",null);
if (pjob != null) {
Graphics pg = pjob.getGraphics();
if (pg != null) {
// Text
pg.setFont(new Font("TimesRoman",Font.PLAIN,24));
pg.drawString("Testseite",40,70);
// Formularelemente
Panel pan = new Panel();
pan.setLayout(null);
Label lab = new Label("Dies ist ein Testlabel");
lab.setBounds(50,100,250,24);
pan.add(lab);
pan.printComponents(pg);
//Seite ausgeben
pg.dispose();
}
pjob.end();
}
}
}
Comment