doppeltes paint beim Drucken

K

KlemensyXYZ

Gast
Moin,

ich steh hier mal wieder vor einem kuriosen Problem.
Und zwar will ich was drucken.

Dieser Quellcode funktioniert:
Java:
[...] //Füllen der Arrays
if (pageIndex == 0)
        {    
            g.setFont(EinfügeTextFont);
            g.drawString(Onam[0], 120, 108);       
            g.drawString(Onr[0], 328, 108);         
            g.setFont(TextFontklein);
            g.drawString(Kon[0], 120, 130);         
            g.drawString(Dat[0], 276, 130);         
            g.drawString(Uhr[0], 370, 130);         
            g.drawString(TS1[0], 60, 199);
            g.drawString(TS2[0], 60, 219);
            g.drawString(TS3[0], 60, 239);
            g.drawString(TS4[0], 60, 259);
            g.drawString(TS5[0], 60, 279);
            g.drawString(TS6[0], 60, 299);
            g.drawString(TS7[0], 60, 319);
            g.drawString(TS8[0], 60, 339);
        }

Dann habe ich das versuch variabler zu machen:
(funktioniert nicht)
Java:
int Seite = 0; //Steht als Klassenvariable ganz oben
[...] //Füllen der Arrays
if (pageIndex == Seite)
        {    
            g.setFont(EinfügeTextFont);
            g.drawString(Onam[0], 120, 108);        
            g.drawString(Onr[0], 328, 108);         
            g.setFont(TextFontklein);
            g.drawString(Kon[0], 120, 130);         
            g.drawString(Dat[0], 276, 130);         
            g.drawString(Uhr[0], 370, 130);        
            g.drawString(TS1[0], 60, 199);
            g.drawString(TS2[0], 60, 219);
            g.drawString(TS3[0], 60, 239);
            g.drawString(TS4[0], 60, 259);
            g.drawString(TS5[0], 60, 279);
            g.drawString(TS6[0], 60, 299);
            g.drawString(TS7[0], 60, 319);
            g.drawString(TS8[0], 60, 339);
        }
Seite++;

Meine Frage ist nun warum geht das untere nicht?
Warum wird nun gar nichts mehr gedruckt?

danke
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
zu Drucken gibts hier manchmal Threads, auch wenn ich jetzt nach Suche keinen vergleichbaren nennen kann,
soweit ich das mitbekomme, wird das paint pro Seite 2x aufgerufen,

mit
if (pageIndex == Seite % 2)
liegst du dann vielleicht richtig,
bzw. logge per Ausgabe, wie oft und in welcher Reihenfolge paint mit welchem pageIndex und welchem Seite-Stand drankommt
 
K

KlemensyXYZ

Gast
zu Drucken gibts hier manchmal Threads, auch wenn ich jetzt nach Suche keinen vergleichbaren nennen kann,

hab ich gemerkt :(

soweit ich das mitbekomme, wird das paint pro Seite 2x aufgerufen,
bzw. logge per Ausgabe, wie oft und in welcher Reihenfolge paint mit welchem pageIndex und welchem Seite-Stand drankommt

hab ich mal gemacht
Ausgabe (PI für PageIndex)
Code:
PI: 0
Seite: 0
PI: 0
Seite: 1
PI: 1
Seite: 2
PI: 1
Seite: 3
PI: 2
Seite: 4
PI: 2
Seite: 5
PI: 3
Seite: 6
PI: 3
Seite: 7
jetzt seh ich den Fehler auch...
... nur wie bekomm ich das weg?

mit
if (pageIndex == Seite % 2)
liegst du dann vielleicht richtig,

was soll denn das
Code:
Seite % 2
bringen?
ich seh da leider keinen unterschied in der Ausgabe ;(
 
S

SlaterB

Gast
PageIndex 0 würde dann auch zur Seite 1 passen, das if erfüllt sein, denn 1 % 2 == 0,
kann natürlich ganz anders besser sein, damit Seite 17 nicht für page 8 stehen muss
 
K

KlemensyXYZ

Gast
ich hab das jetzt mal so verucht:
Java:
System.out.println("PI: " + pageIndex);
        System.out.println("Seite: " + Seite);
        
        if (pageIndex == Seite )
        {    
            g.setFont(EinfügeTextFont);
            g.drawString(Onam[(Seite * 2)], 120, 108);        //Objektname
            g.drawString(Onr[0], 328, 108);         //Objektnummer
            g.setFont(TextFontklein);
            g.drawString(Kon[0], 120, 130);         //Kontrolleur
            g.drawString(Dat[0], 276, 130);         //Datum
            g.drawString(Uhr[0], 370, 130);         //Uhrzeit
            g.drawString(TS1[0], 60, 199);
            g.drawString(TS2[0], 60, 219);
            g.drawString(TS3[0], 60, 239);
            g.drawString(TS4[0], 60, 259);
            g.drawString(TS5[0], 60, 279);
            g.drawString(TS6[0], 60, 299);
            g.drawString(TS7[0], 60, 319);
            g.drawString(TS8[0], 60, 339);
            Seite++;
        }
hatte mir das so gedacht dass Seite nur hochgezählt wird wenn vorher was gedruckt wurde.
Ist aber auch nicht das gelbe vom Ei :(
Die Ausgabe passt jetzt zwar schon besser:
Code:
PI: 0
Seite: 0
PI: 0
Seite: 1
PI: 1
Seite: 1
PI: 1
Seite: 2
PI: 2
Seite: 2
PI: 2
Seite: 3
PI: 3
Seite: 3
PI: 3
Seite: 4
gedruckt wird trotzdem noch nichts.

Was könnte ich denn noch versuchen?
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
gegen das doppelte paint kann ich nichts sagen, in anderen Themen glaube ich auch ohne Lösung,

dass ansonsten pageIndex beim zweiten paint nicht zu Seite passt dürfte klar sein,
mit % 2 würde es nach wie vor klappen, komplizierte Varianten sind natürlich denkbar, aber mit welchen Ziel?
 

darkeye2

Bekanntes Mitglied
also % 2 sollte nicht gehen, weil:
x%2 gibt ja den rest der division zurück:
Code:
1%2 =1
2%2 =0
3%2 =1
4%2 =0
5%2 =1
somit würde nur seite 0 und 1 gedruckt werden, eine lösung wäre z.b.
zu merken, welche seite zuletzt gedruckt wurde, somit wird immer überprüft, ob dieses seite grad schon gedruckt wurde, wenn nicht dann wird weitergemacht, ansonsten nicht, somit kann man das doppelte drucken von seiten verhindern.
 

Michael...

Top Contributor
Vermutlich liegt es an der Implementierung des PrinterJobs. Habe mal irgendwo gelesen, dass beim ersten Aufruf getestet wird, was gedruckt werden soll - simpler Text oder hochauflösende Graphik - um im zweiten Durchlauf ein optimales Graphics Objekt zur Verfügung zu stellen.
In der API Doku von Printable wird auch darauf hingewiesen, dass die print Methode mehr als ein mal aufgerufen werden kann und das Printable Objekt damit rechnen muss, dass die print Methode mehrmals aufgerufen wird oder Seiten übersprungen werden können (z.B. Anwender will nur Seite 1, 5, 6 drucken).
Daher sollte oder sogar muss man beim Implementieren von Printable bzw. der print Methode den zu druckenden Inhalt einzig vom pageIndex abhängig machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Doppeltes Gleichheitszeichen bei Export Java Java Basics - Anfänger-Themen 5
F Doppeltes Gleich? Java Basics - Anfänger-Themen 8
D Liste und doppeltes... Java Basics - Anfänger-Themen 9
Binary.Coder Doppeltes Hashing verläuft in "Endlosscheife" beim rechnen per Hand Java Basics - Anfänger-Themen 8
P doppeltes Hochkomma (") in String verwenden Java Basics - Anfänger-Themen 3
L doppeltes Hashing Java Basics - Anfänger-Themen 14
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
S awt: paint Methode zeigt nichts an Java Basics - Anfänger-Themen 9
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
S Erste Schritte drawOval Problem in Paint Anwendung Java Basics - Anfänger-Themen 1
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
thet1983 start & paint Methode? Java Basics - Anfänger-Themen 0
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
D Wert einer Variable in paint-Methode verwenden Java Basics - Anfänger-Themen 2
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
T Vererbung Wann wird die Methode paint aufgerufen? Java Basics - Anfänger-Themen 4
L Paint() wird scheinbar nicht richtig ausgeführt Java Basics - Anfänger-Themen 8
N aus Container components paint Java Basics - Anfänger-Themen 2
J paint() vs repaint() Java Basics - Anfänger-Themen 3
A Problem mit paint() Java Basics - Anfänger-Themen 2
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
L Erste Schritte Swing oder SWT Paint mit Grafikkarte? Java Basics - Anfänger-Themen 7
T paint() wird nicht aufgerufen Java Basics - Anfänger-Themen 2
K paint() mit einfügen Java Basics - Anfänger-Themen 14
J paint-methode blockiert settings von JComponents Java Basics - Anfänger-Themen 5
F Eine Frage über paint() Funktion Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
W repaint() ruft paint() nicht auf Java Basics - Anfänger-Themen 9
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
A paint() methode von externer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
V paint funktioniert nicht Java Basics - Anfänger-Themen 14
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
O Paint Programm mit Fehler Java Basics - Anfänger-Themen 2
A Methoden Variablen in paint methode Java Basics - Anfänger-Themen 4
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
S Datentypen Paint Programm Java Basics - Anfänger-Themen 7
M paint-Methode funzt nicht Java Basics - Anfänger-Themen 11
L Paint zeichnet nicht gespeicherte Objekte Java Basics - Anfänger-Themen 3
D OOP paint() Methode aus Unterklasse anstoßen Java Basics - Anfänger-Themen 3
A paint() - warum nicht aufrufen? Java Basics - Anfänger-Themen 3
K Scrollbar - Bild - paint-Methode - zoom Java Basics - Anfänger-Themen 10
S super.paint() Java Basics - Anfänger-Themen 4
S Bild aus paint() Methode auslagern Java Basics - Anfänger-Themen 14
T Etwas an paint()-Methode übergeben? Java Basics - Anfänger-Themen 6
TheKing Paint-Methode aufrufen Java Basics - Anfänger-Themen 14
N paint methode statt Event-Handling-Methode Java Basics - Anfänger-Themen 3
M Paint und JColorChooser Java Basics - Anfänger-Themen 12
G hintergrund wird nicht gezeichnet bei paint() Java Basics - Anfänger-Themen 3
H Paint Methode malt nicht im Panel Java Basics - Anfänger-Themen 4
S Frage zur paint-Methode Java Basics - Anfänger-Themen 3
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
G Nichtstatische Objekte in der paint()-Methode Java Basics - Anfänger-Themen 16
K Wieso wird "paint" nicht ausgeführt ? Java Basics - Anfänger-Themen 2
K JPanel, JFrame, paint() und wo ist mein Viereck ? Java Basics - Anfänger-Themen 19
F Frage zu JPanel und Paint Java Basics - Anfänger-Themen 5
P paint Methode Java Basics - Anfänger-Themen 3
M Problem mit paint() und Container. Java Basics - Anfänger-Themen 8
B Paint(Component) und externe Objekte Java Basics - Anfänger-Themen 6
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
F Applets und die paint-Methode Java Basics - Anfänger-Themen 3
G frage zu paint Java Basics - Anfänger-Themen 3
T Mehrere paint Methoden in unterschiedlichen Klassen Java Basics - Anfänger-Themen 7
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
G Hilfe in paint() ; zeichnen Java Basics - Anfänger-Themen 15
C Einfaches Paint-Programm Java Basics - Anfänger-Themen 9
T .paint() aufrufen Java Basics - Anfänger-Themen 23
S Paint Teilweise Zeitverzögert Java Basics - Anfänger-Themen 6
R paint problem Java Basics - Anfänger-Themen 6
G mit paint() ins JPanel malen. Java Basics - Anfänger-Themen 6
M Auf Panels oder Labels malen? (paint) Java Basics - Anfänger-Themen 9
G repaint in paint aufrufen? Java Basics - Anfänger-Themen 9
V paint()-methode manuell aufrufen? kein autostart erwuenscht Java Basics - Anfänger-Themen 3
B Problem mit Einfügen von Choice (in ein Applet) aus Paint Java Basics - Anfänger-Themen 13
7 In Paint keine Schleife? Java Basics - Anfänger-Themen 13
T paint() wieder aus einder anderen methode aufrufen funzt nid Java Basics - Anfänger-Themen 2
G Paint auf Panel Java Basics - Anfänger-Themen 4
G Paint Methode löscht alles Java Basics - Anfänger-Themen 4
S paint() direkt auf JFrame seit 1.5 nicht mehr möglich? Java Basics - Anfänger-Themen 5
A Variablenübergabe in die Paint-Funktion Java Basics - Anfänger-Themen 4
D Zeichnen mit Paint zerstört ganzes Fenster Java Basics - Anfänger-Themen 5
G Klassen und paint methode Java Basics - Anfänger-Themen 2
T paint() ohne konstruktor aufzurufen? Java Basics - Anfänger-Themen 5
P paint() Java Basics - Anfänger-Themen 6
U paint Java Basics - Anfänger-Themen 8
X Malen außerhalb der paint() Methode Java Basics - Anfänger-Themen 4
C zu viele paint()'s. Java Basics - Anfänger-Themen 6
G Zeichnen ausserhalb der paint Methode Java Basics - Anfänger-Themen 4
V Problem mit der Anzeige einer paint-Methode in einem Panel Java Basics - Anfänger-Themen 2
N Probleme mit paint() bei Implementierung in ein Panel Java Basics - Anfänger-Themen 4
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
D von paint() und repaint() im Applet Java Basics - Anfänger-Themen 4
C Ausgaben mit der Paint-Methode Java Basics - Anfänger-Themen 5
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben