22. august 2003 - 08:30
#6
Her har du et eksempel på 2 klasser, der printer et objekt ud, som jeg fornyligt har lavet.
package Model_Komp;
public class MK_Kartotek
{
String navn,adresse,postnr,by,kontaktperson,email,hp,levereingsAddresse,tlf,mobil,bank,cvrnr,noter;
int gruppe,id;
public MK_Kartotek(int id,String navn,String adresse,String postnr,
String by,String kontaktperson,String email,
String hp,String levereingsAddresse,String tlf,
String mobil,String bank,String cvrnr,String noter,int gruppe)
{
this.id=id;
this.navn=navn;
this.adresse=adresse;
this.postnr=postnr;
this.by=by;
this.kontaktperson=kontaktperson;
this.email=email;
this.hp=hp;
this.levereingsAddresse=levereingsAddresse;
this.tlf=tlf;
this.mobil=mobil;
this.bank=bank;
this.cvrnr=cvrnr;
this.noter=noter;
this.gruppe=gruppe;
}
public MK_Kartotek()
{
}
public int getId()
{
return id;
}
public String getNavn()
{
return navn;
}
public String getAdresse()
{
return adresse;
}
public String getPostnr()
{
return postnr;
}
public String getBy()
{
return by;
}
public String getKontaktperson()
{
return kontaktperson;
}
public String getEmail()
{
return email;
}
public String getHp()
{
return hp;
}
public String getLevereingsAddresse()
{
return levereingsAddresse;
}
public String getTlf()
{
return tlf;
}
public String getMobil()
{
return mobil;
}
public String getBank()
{
return bank;
}
public String getCvrnr()
{
return cvrnr;
}
public String getNoter()
{
return noter;
}
public int getGruppe()
{
return gruppe;
}
}
................................................................
/*
* PrintKundeKort.java
*
* Created on 19. august 2003, 12:42
*/
package Funktions_Komp;
import Model_Komp.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import javax.swing.*;
/**
*
* @author aslan
*/
public class PrintKundeKort implements Printable
{
/** Creates a new instance of PrintKundeKort */
public PrintKundeKort(MK_Kartotek obj)
{
title=new JLabel("Kunde/Kontakt kort");
firmaObj=obj;
}
/*
public void previewPortrait()
{
new PrintPreview(PrintKundeKort.this,"Vis Portræt udskrift",PageFormat.PORTRAIT);
}
*/
public void printData()
{
try
{
PrinterJob prnJob = PrinterJob.getPrinterJob();
prnJob.setPrintable(this);
if (!prnJob.printDialog())
return;
maxNumPage = 1;
prnJob.print();
}
catch (PrinterException e)
{
e.printStackTrace();
}
}
public int print(Graphics pg, PageFormat pageFormat,int pageIndex) throws PrinterException
{
if (pageIndex >= maxNumPage)
return NO_SUCH_PAGE;
pg.translate((int)pageFormat.getImageableX(),
(int)pageFormat.getImageableY());
int wPage = 0;
int hPage = 0;
if (pageFormat.getOrientation() == pageFormat.PORTRAIT)
{
wPage = (int)pageFormat.getImageableWidth();
wPage += wPage/5;
hPage = (int)pageFormat.getImageableHeight();
hPage += hPage/3;
}
else
{
wPage = (int)pageFormat.getImageableWidth();
wPage += wPage/2;
hPage = (int)pageFormat.getImageableHeight();
pg.setClip(0,0,wPage,hPage);
}
int xPos[] = new int[]
{
0,60,200,250,300,350,400
};
int y = 20;
int y2 = 10;
pg.setColor(Color.black);
pg.setFont(new Font("Thorndale",Font.BOLD,16));
Font fn = pg.getFont();
FontMetrics fm = pg.getFontMetrics();
pg.drawString(title.getText(),0, y);
y+=20;
pg.setFont(new Font("Thorndale",Font.PLAIN,10));
if(firmaObj.getNavn().length()>0)
{
pg.drawString(firmaObj.getNavn(),0, y);
y+=13;
}
if(firmaObj.getAdresse().length()>0)
{
pg.drawString(firmaObj.getAdresse(),0, y);
y+=13;
}
if(firmaObj.getPostnr().length()>0 || firmaObj.getBy().length()>0)
{
pg.drawString(firmaObj.getPostnr()+" "+firmaObj.getBy(),0, y);
y+=13;
}
pg.setFont(new Font("Thorndale",Font.BOLD,12));
pg.drawString("Kontaktperson",300, y2);
y2+=15;
pg.setFont(new Font("Thorndale",Font.PLAIN,10));
pg.drawString("Navn",250, y2);
pg.drawString("Tlf",350, y2);
y2+=5;
for(int i=0;i<5;i++)
{
pg.drawRect(250,y2,90,15);
pg.drawRect(350,y2,90,15);
y2+=18;
}
y2+=15;
pg.drawString("Dato",0, y2);
pg.drawString("Salg",35, y2);
pg.drawString("Dis",130, y2);
pg.drawString("Næste besøg",165, y2);
pg.drawString("Dato",230, y2);
pg.drawString("Salg",265, y2);
pg.drawString("Dis",360, y2);
pg.drawString("Næste besøg",395, y2);
y2+=5;
for(int i=0;i<12;i++)
{
pg.drawRect(0,y2,30,40);
pg.drawRect(35,y2,90,40);
pg.drawRect(130,y2,30,40);
pg.drawRect(165,y2,60,40);
pg.drawRect(230,y2,30,40);
pg.drawRect(265,y2,90,40);
pg.drawRect(360,y2,30,40);
pg.drawRect(395,y2,60,40);
y2+=45;
}
System.gc();
return PAGE_EXISTS;
}
private int maxNumPage=1;
private JLabel title;
private MK_Kartotek firmaObj;
}
.....................................................................
Når du kører metoden printData() skulle der meget gerne komme noget print ud :-)