Avatar billede ihtezaz Praktikant
07. april 2004 - 03:14 Der er 6 kommentarer og
1 løsning

Udskrivning af array til printeren

Hej
jeg har en "vare" array som jeg vil have printet ud på en faktura, men hvordan printer jeg en array ud. Noget af koden :

//--- Vare information overskrifter

g.setFont(new Font("Verdana",Font.BOLD,10));
g.drawString("Varenr",80,250);
g.drawString("Betegnelse",170,250);
g.drawString("Pris",270,250);
g.drawString("Antal",340,250);
g.drawString("Pris ialt",410,250);
   
//--- Varekøbs information
int n = 300;

for(int i =0;i<v.length;i++)
   
{
g.setFont(new Font("Verdana",Font.PLAIN,10));
g.drawString(v[i].getVareNr()+"",83,n);
g.drawString(v[i].getBetegn(),173,n);
g.drawString(v[i].getPris()+"",273,n);
g.drawString(v[i].getAntal()+"",343,n);
g.drawString(ialt[i],413,n);
n+=100;
}

Det tydligt at print metoden ikke vil have loop, og det er da også logisk at loopen ikke køres igennem lige inden der printes ud. Men hvordan kan array'et eller printes ud ?

På forhånd tak.
Avatar billede ihtezaz Praktikant
07. april 2004 - 03:15 #1
"Printes ud" der mener jeg hele tiden til printeren.
Avatar billede _carsten Nybegynder
07. april 2004 - 15:14 #2
Hvad får du af compilefejl ?

Prøv at rette
g.drawString(v[i].getVareNr()+"",83,n);

Til:
g.drawString( ((VareObjectNavn) v[i]).getVareNr()+"",83,n);
Avatar billede ihtezaz Praktikant
07. april 2004 - 16:48 #3
Nope det virker ikke, fordi getVareNr() returner en int og ikke Vareobject.  getBetegn() returner String og ikke Vareobject. osv.

Jeg får denne compilerfejl:

java.lang.NullPointerException

at vindue$19.print(vindue.java:1017)

at sun.java2d.RasterPrinterJob.printPage(RasterPrinterJob.java:672)

at sun.java2d.RasterPrinterJob.print(RasterPrinterJob.java:337)

at vindue.udskrivDagrapport(vindue.java:1070)

at vindue.udskractionPerformed(vindue.java:377)

at vindue$18.actionPerformed(vindue.java:899)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1445)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1499)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:373)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:245)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:211)

at java.awt.Component.processMouseEvent(Component.java:3710)

at java.awt.Component.processEvent(Component.java:3539)

at java.awt.Container.processEvent(Container.java:1159)

at java.awt.Component.dispatchEventImpl(Component.java:2588)

at java.awt.Container.dispatchEventImpl(Container.java:1208)

at java.awt.Component.dispatchEvent(Component.java:2492)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2446)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2211)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2120)

at java.awt.Container.dispatchEventImpl(Container.java:1195)

at java.awt.Window.dispatchEventImpl(Window.java:921)

at java.awt.Component.dispatchEvent(Component.java:2492)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:334)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:126)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:93)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:80)
Avatar billede _carsten Nybegynder
07. april 2004 - 18:36 #4
Okay, du får sandsynligvis ingen compilefejl, men åbenbart runtimefejl

Det kan godt være at getVareNr() returnerer en int, men indeholder v[i] ikke et Object af en eller anden type ??

Du får en nullpointerException i line 1017 i filen vindue.java !

Her bruger du altså et eller andet som du ikke har fået initieret, så den skal du have løst først. Hvis du ikke kan finde den, skal vi nok se hele, eller det meste af koden for at løse problemet - og det fylder åbenbart en del.

at vindue$19.print(vindue.java:1017)
Avatar billede ihtezaz Praktikant
08. april 2004 - 02:02 #5
Hey Carsten
Du havde delvis ret, derfor får du points. Jeg instantierede et vare objekt i starten af for løkken, og derefter udprintede egenskaber på denne vare objekt
og det virkede!!! Tak.
Her er det ny Kode:

for(int i =0;i<v.length;i++)
{
if (v[i]!=null && ialt[i]!=null)
{
Vare var = v[i];
String antalIalt = ialt[i];
g.drawString(var.getVareNr()+"",83,n);
g.drawString(var.getBetegn(),173,n);
g.drawString(var.getPris()+"",273,n);
g.drawString(var.getAntal()+"",343,n);
g.drawString(antalIalt,413,n);

n+=50;
}
Avatar billede ihtezaz Praktikant
08. april 2004 - 02:04 #6
Du sporede mig på det rigtig, så du får points, læg et svar.
Avatar billede _carsten Nybegynder
08. april 2004 - 08:19 #7
Okay - svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester