Hi,
habe eine Class BearbeitenAltfahrzeuge in der ich die Class Vw_Nw_Seite_1 aufrufe und danach möchte ich die CLass Druckersteuerung aufrufen.
In der Class BearbeitenAltfahrzeuge habe ich ein Fenster mit diversen Textfelder
In der Class Vw_Nw_Seite_1 werden die Textfelder bzw.Strings übernommen und zum drucken positioniert
In der Class Druckersteuerung sollte der Kram dann gedruckt werden.
Das ist mein Vorhaben.
Wenn ich die Class Vw_Nw_Seite_1 mit
Vw_Nw_Seite_1 druckdatenerstellen = new Vw_Nw_Seite_1(); aufrufe , scheint !! das zu funktioneren.
Wenn ich aber die nächste Class Druckersteuerung mit
Druckersteuerung druckersteuerung = new Druckersteuerung(); in meinen Prog.code reinschreibe, erhalte ich gleich eine Fehlermarkierung mit folgender Meldung
The constructor Drucksteuerung() is undifined
Ich will aber keinen constructor erstellen, das ist eine class die ich starten will.
Was mach ich da falsch? Ich arbeite mit Eclipse 3.2
Im Anhang meine drei Class
Danke vorab an alle die mir helfen können!
Teil 1 Ausschnitt aus meiner Class BearbeitenAltfahrzeuge
Teil 2 Class Vw_Nw_Seite_1
Teil 3 Class Druckersteuerung
habe eine Class BearbeitenAltfahrzeuge in der ich die Class Vw_Nw_Seite_1 aufrufe und danach möchte ich die CLass Druckersteuerung aufrufen.
In der Class BearbeitenAltfahrzeuge habe ich ein Fenster mit diversen Textfelder
In der Class Vw_Nw_Seite_1 werden die Textfelder bzw.Strings übernommen und zum drucken positioniert
In der Class Druckersteuerung sollte der Kram dann gedruckt werden.
Das ist mein Vorhaben.
Wenn ich die Class Vw_Nw_Seite_1 mit
Vw_Nw_Seite_1 druckdatenerstellen = new Vw_Nw_Seite_1(); aufrufe , scheint !! das zu funktioneren.
Wenn ich aber die nächste Class Druckersteuerung mit
Druckersteuerung druckersteuerung = new Druckersteuerung(); in meinen Prog.code reinschreibe, erhalte ich gleich eine Fehlermarkierung mit folgender Meldung
The constructor Drucksteuerung() is undifined
Ich will aber keinen constructor erstellen, das ist eine class die ich starten will.
Was mach ich da falsch? Ich arbeite mit Eclipse 3.2
Im Anhang meine drei Class
Danke vorab an alle die mir helfen können!
Teil 1 Ausschnitt aus meiner Class BearbeitenAltfahrzeuge
Code:
// ######################################################################
// ########### public void mouseClicked(MouseEvent arg0)##)############################
// ######################################################################
public void drucke1()
{
//
Vw_Nw_Seite_1 druckdatenerstellen = new Vw_Nw_Seite_1();
Druckersteuerung druckersteuerung = new Druckersteuerung(); // hier bekomme ich den Fehler
}
// ####################################################################
// ########### public void mouseClicked(MouseEvent arg0) ###########################
// ####################################################################
public void mouseClicked(MouseEvent arg0)
{
// #################################################################
// ########### Button Druck1 geklickt #######################################
// #################################################################
if(arg0.getSource()==print1)
{
drucke1(); // Methode Verwertungsnachweis Seite 1 druckaufbereiten
today(); // Methode Systemzeit neu setzen
print1.setVisible(false);
}
Teil 2 Class Vw_Nw_Seite_1
Code:
/* Vw_Nw_Seite_1.java: Printable-Hilfsklasse */
import java.awt.*;
import java.awt.print.*;
public class Vw_Nw_Seite_1 implements Printable
{
public int iResMul = 1; // 1 = 72 dpi; 4 = 288 dpi
BearbeitenAltfahrzeuge Daten = new BearbeitenAltfahrzeuge();
public int print( Graphics g, PageFormat pf, int iPage )
throws PrinterException //Fehlerabhandlung bei Drucker anzeigen
{
final int FONTSIZE = 10;
if( 0 != iPage )
return NO_SUCH_PAGE;
try {
int spalteX = 1;
int zeileY = 30;
int iAddY = FONTSIZE;// * 3/2 * iResMul;
int iWdth = (int)Math.round( pf.getImageableWidth() * iResMul ) - 3;
int iHght = (int)Math.round( pf.getImageableHeight() * iResMul ) - 3;
int iCrcl = Math.min( iWdth, iHght ) - 4 * iResMul;
Graphics2D g2 = (Graphics2D)g;
PrinterJob prjob = ((PrinterGraphics)g2).getPrinterJob();
g2.translate( pf.getImageableX(), pf.getImageableY() );
g2.scale( 1.0 / iResMul, 1.0 / iResMul );
g2.setFont( new Font( "SansSerif", Font.PLAIN, FONTSIZE * iResMul ) );
g2.setColor( Color.black );
zeileY += iAddY; // x.Zeile
spalteX += iAddY; // x.spalte
g2.drawString(Daten.lfd_annahmedatum, spalteX + 210, zeileY+=iAddY ) ;// 1.Zeile
g2.drawString(Daten.lfd_laufendenummer, spalteX + 370, zeileY ); // 1.Zeile
g2.drawString(Daten.lfd_letztamtkennzeichen, spalteX + 210, zeileY+=iAddY ); // 2.Zeile
g2.drawString(Daten.lfd_annahmestellenummer, spalteX + 370, zeileY); // 2.Zeile
g2.drawString(Daten.lfd_fir_na_vor, spalteX + 10, zeileY+=iAddY ); // 3.Zeile
g2.drawString(Daten.lfd_geburtsdatum, spalteX + 350, zeileY); // 3.Zeile
g2.drawString(Daten.lfd_strasse, spalteX + 10, zeileY+=iAddY ); // 4.Zeile
g2.drawString(Daten.lfd_strassehausnummer, spalteX + 370, zeileY ); // 4.Zeile
g2.drawString(Daten.lfd_plz, spalteX + 10, zeileY+=iAddY ); // 5.Zeile
g2.drawString(Daten.lfd_ort, spalteX + 60, zeileY ); // 5.Zeile
g2.drawString(Daten.lfd_nationalitaet, spalteX + 10, zeileY+=iAddY ); // 6.Zeile
g2.drawString(Daten.lfd_angabenzumfahrzeug, spalteX + 250, zeileY ); // 6.Zeile
g2.drawString(Daten.lfd_klasse, spalteX + 10, zeileY+=iAddY ); // 7.Zeile
g2.drawString(Daten.lfd_hersteller, spalteX + 60, zeileY ); // 7.Zeile
g2.drawString(Daten.lfd_modell, spalteX + 350, zeileY ); // 7.Zeile
g2.drawString(Daten.lfd_fahrzeugidentnr, spalteX + 10, zeileY+=iAddY );// 8.Zeile
g2.drawString(Daten.lfd_letztamtkennzeichen, spalteX + 250, zeileY ); // 8.Zeile
g2.drawString(Daten.lfd_datumerstzulassung, spalteX + 10, zeileY+=iAddY);// 9.Zeile
g2.drawString(Daten.lfd_fzleergewicht, spalteX + 400, zeileY+=iAddY); // 9.Zeile
g2.drawString(Daten.lfd_nationalitaetskennzeichen, spalteX + 350,zeileY);// 9.Zeile
g2.drawString(Daten.lfd_angabenzumfahrzeug, spalteX + 10, zeileY+=iAddY);//10.Zeile
g2.drawString(Daten.lfd_annahmestellenname, spalteX + 10,zeileY+=iAddY);//11.Zeile
g2.drawString(Daten.lfd_annahmestellennamezusatz,spalteX+10,zeileY+=iAddY);//12.Zeile
g2.drawString(Daten.lfd_annahmestellestrasse, spalteX+10,zeileY+=iAddY); //13.Zeile
g2.drawString(Daten.lfd_annahmestellestrassehausnummer,spalteX+370,zeileY);//13.Zeile
g2.drawString(Daten.lfd_annahmestelleplz, spalteX + 10, zeileY+=iAddY ); //14.Zeile
g2.drawString(Daten.lfd_annahmestelleort, spalteX + 60, zeileY ); //14.Zeile
g2.drawString(Daten.lfd_annahmestelletelefon, spalteX +10,zeileY+=iAddY);//15.Zeile
g2.drawString(Daten.lfd_annahmestellefax, spalteX +250, zeileY ); //15.Zeile
g2.drawString(Daten.lfd_sannahmestellenname, spalteX +10, zeileY+=iAddY );//16.Zeile
g2.drawString(Daten.lfd_sannahmestellennamezusatz,spalteX+10,zeileY+=iAddY );//17.Zeile
g2.drawString(Daten.lfd_sannahmestellestrasse, spalteX+10,zeileY+=iAddY); //18.Zeile
g2.drawString(Daten.lfd_sannahmestellestrassehausnummer,spalteX+370,zeileY);//18.Zeile
g2.drawString(Daten.lfd_sannahmestelleplz, spalteX + 10, zeileY+=iAddY ); //19.Zeile
g2.drawString(Daten.lfd_sannahmestelleort, spalteX + 60, zeileY ); //19.Zeile
g2.drawString(Daten.lfd_sannahmestelletelefon, spalteX +10,zeileY+=iAddY);//20.Zeile
g2.drawString(Daten.lfd_sannahmestellefax, spalteX +250, zeileY ); //20.Zeile
g2.drawString(Daten.lfd_sannahmestellesachverstaendigerdatumbescheinigungletzte, spalteX +10,zeileY+=iAddY);//21.Zeile
g2.drawString(Daten.lfd_sannahmestellesachverstaendigerablaufdatumbescheinigungletzte, spalteX +250, zeileY );//21.Zeile
g2.drawString(Daten.lfd_fahrzeug27aSTVZO_ja,spalteX +10,zeileY+=iAddY);//22.Zeile
g2.drawString(Daten. lfd_fahrzeug27aSTVZO_nein,+50,zeileY); //22.Zeile
} catch( Exception ex ) {
throw new PrinterException( ex.getMessage() );
}
return PAGE_EXISTS;
}
}
Teil 3 Class Druckersteuerung
Code:
import java.util.*;
import java.io.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
public class Druckersteuerung
{
public static void main( String args[] )
{
new Druckersteuerung( args );
}
public Druckersteuerung( String args[] )
{
final String sCrLf = System.getProperty( "line.separator" );
final String sPrintFile = "PrintFile.ps";
final String sErrNoPrintService = sCrLf
+ "Es ist kein passender Print-Service installiert.";
System.out.println(
sCrLf + "Drucken eines Grafikobjekts entweder mit dem Drucker oder als PostScript-Datei."
+ sCrLf + "Ohne Kommandozeilenparameter werden alle gefundenen Print-Services aufgelistet"
+ sCrLf + "und ein Druckerdialog gestartet."
+ sCrLf + "Eine Zahl >= 0 steuert den zu dieser Zahl gehoerenden PrintService/Drucker an."
+ sCrLf + "Mit irgendeinem Buchstaben als Kommandozeilenparameter wird eine Ausgabedatei "
+ sCrLf + "im PostScript-Format erzeugt."
+ sCrLf + "Wird als zweiter Parameter np (no printing) angegeben, wird nicht gedruckt."
+ sCrLf );
// Commandline parameter:
String s2ndParm = null; // second commandline parameter
int idxPrintService = -1; // -1 means: no parameter
if( null != args && 0 < args.length )
{
// Check first commandline parameter (PrintService index):
if( null != args[0] )
{
idxPrintService = -2; // -2 means: not a number
try { // nr means: PrintService index
idxPrintService = Integer.parseInt( args[0] );
}
catch( Exception ex ) {
}
}
// Check second commandline parameter ('np'):
if( 1 < args.length )
s2ndParm = args[1];
}
// Set DocFlavor and print attributes:
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add( MediaSizeName.ISO_A4 );
try {
if( -2 == idxPrintService )
{
// Print to Stream (here to PostScript File):
StreamPrintServiceFactory[] prservFactories =
StreamPrintServiceFactory.lookupStreamPrintServiceFactories(
flavor, DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType() );
if( null == prservFactories || 0 >= prservFactories.length )
{
System.err.println( sErrNoPrintService );
System.exit( 2 );
}
System.out.println( "Stream-PrintService-Factory:" );
for( int i=prservFactories.length-1; i>=0; i-- )
System.out.println( " " + prservFactories[i]
+ " (" + prservFactories[i].getOutputFormat() + ")" );
FileOutputStream fos = new FileOutputStream( sPrintFile );
StreamPrintService sps = prservFactories[0].getPrintService( fos );
System.out.println( "Stream-PrintService:" );
System.out.println( " " + sps + " (" + sps.getOutputFormat() + ")" );
printPrintServiceAttributesAndDocFlavors( sps );
DocPrintJob pj = sps.createPrintJob();
Doc doc = new SimpleDoc( new Druckdaten(), flavor, null ); //Aufruf der Druckdaten
pj.print( doc, aset );
fos.close();
System.out.println( "Ausgabedatei '" + sPrintFile
+ "' ist erfolgreich generiert." );
}
else
{
// Print to PrintService (e.g. to Printer):
PrintService prservDflt = PrintServiceLookup.lookupDefaultPrintService();
PrintService[] prservices = PrintServiceLookup.lookupPrintServices( flavor, aset );
if( null == prservices || 0 >= prservices.length )
if( null != prservDflt )
{
System.err.println( "Nur Default-Printer, da lookupPrintServices fehlgeschlagen." );
prservices = new PrintService[] { prservDflt };
}
else
{
System.err.println( sErrNoPrintService );
System.exit( 3 );
}
System.out.println( "Print-Services:" );
for( int i=0; i<prservices.length; i++ )
System.out.println( " " + i + ": " + prservices[i]
+ (( prservDflt != prservices[i] ) ? "" : " (Default)") );
PrintService prserv = null;
if( 0 <= idxPrintService && idxPrintService < prservices.length )
prserv = prservices[idxPrintService];
else
{
if( !Arrays.asList( prservices ).contains( prservDflt ) ) prservDflt = null;
prserv = ServiceUI.printDialog( null, 50, 50, prservices, prservDflt, null, aset );
}
if( null != prserv )
{
System.out.println( "Ausgewaehlter Print-Service:" );
System.out.println( " " + prserv );
printPrintServiceAttributesAndDocFlavors( prserv );
if( null == s2ndParm || !s2ndParm.equalsIgnoreCase( "np" ) )
{
DocPrintJob pj = prserv.createPrintJob();
Doc doc = new SimpleDoc( new Vw_Nw_Seite_1(), flavor, null ); // Sprung in die Klasse Vw_Nw_Seite_1 und sofort zurück
pj.print( doc, aset );
System.out.println( "Grafik ist erfolgreich gedruckt." );
}
}
}
} catch( PrintException pe ) {
System.err.println( pe );
} catch( IOException ie ) {
System.err.println( ie );
}
System.exit( 0 );
}
private void printPrintServiceAttributesAndDocFlavors( PrintService prserv )
{
String s1=null, s2;
Attribute[] prattr = prserv.getAttributes().toArray();
DocFlavor[] prdcfl = prserv.getSupportedDocFlavors();
if( null != prattr && 0 < prattr.length )
for( int i=0; i<prattr.length; i++ )
System.out.println( " PrintService-Attribute["+i+"]: "
+ prattr[i].getName() + " = " + prattr[i] );
if( null != prdcfl && 0 < prdcfl.length )
for( int i=0; i<prdcfl.length; i++ )
{
s2 = prdcfl[i].getMimeType();
if( null != s2 && !s2.equals( s1 ) )
System.out.println( " PrintService-DocFlavor-Mime["+i+"]: " + s2 );
s1 = s2;
}
}
}