JTable - Drucken

Status
Nicht offen für weitere Antworten.

Sancho

Aktives Mitglied
Hallo zusammen,
ja ich weiß, es gibt schon mehrere Threads zu diesem Thema. Aber nix konnte mir weiterhelfen.

Ich hab eine Tabelle mit 5 Spalten.
Drucke ich diese werden aufgrund ihrer Breite zwei Seiten gedruckt. Die erste Seite mit den ersten drei Spalten und die zweite dementsprechend mit den letzten zwei Spalten. Im Grunde sind die letzten zwei Seiten irrelevant. Daher erzeuge ich vor dem Drucken eine neue Tabelle mit neuem TableModel. Doch wenn ich dann auf drucken gehe, wird nur ein leeres Rechteck gedruckt.

Hier ein bisschen Code:
Code:
table.print(JTable.PrintMode.NORMAL);
Hier funktioniert's bei der Table mit 5 Spalten.


Code:
JTable printTable = new JTable(new PrintTableModel());
			
printTable.print(JTable.PrintMode.NORMAL);

Hier bei der Tabelle mit 3 Spalten wird nur ein leeres Rechteck gedruckt.

Kann es sein das die Druckfunktion bei Java noch nicht so ausgereift ist?
 

André Uhres

Top Contributor
Sancho hat gesagt.:
...Kann es sein das die Druckfunktion bei Java noch nicht so ausgereift ist?
Die zu druckende JTable muss sichtbar sein:
Code:
       TableModel save = table.getModel();
        table.setModel(printTableModel);
        try {
            table.print(JTable.PrintMode.NORMAL);
        } catch (PrinterException ex) {
            ex.printStackTrace();
        }
        table.setModel(save);
 

Illuvatar

Top Contributor
Bist du dir sicher? Das war nämlich auch meine Vermutung, aber ich hab in die API geschaut, und da steht, man könnte JTables sogar im Headless Mode drucken, wenn man die Druckdialoge nicht anzeigen lässt. Und im Headless Mode kann die JTable ja gar nicht sichtbar sein.
 

André Uhres

Top Contributor
Illuvatar hat gesagt.:
Bist du dir sicher? Das war nämlich auch meine Vermutung, aber ich hab in die API geschaut, und da steht, man könnte JTables sogar im Headless Mode drucken, wenn man die Druckdialoge nicht anzeigen lässt. Und im Headless Mode kann die JTable ja gar nicht sichtbar sein.
Der Druckdialog kommt jedenfalls auch bei einer unabhängigen JTable, gedruckt wird aber nur ein leeres Rechteck.
Ich bin mir allerdings nicht sicher was hier mit headless mode gemeint ist :bahnhof:
 

Sancho

Aktives Mitglied
jetzt druckt er zwar wieder, aber nur die ersten zwei Spalten auf eine Seite und die dritte Spalte auf die nächste ;-(

Kann ich ihn irgendwie dazu zwingen die drei Spalten auf eine Seite zu drucken.

Wenn ich
table.print(JTable.PrintMode.FIT_WIDTH);
schreibe, druck er sogar nur die erste Spalte auf ein Blatt
 

Illuvatar

Top Contributor
@Sancho: Kann dir leider nicht helfen... ???:L

@André: Headless Mode bedeutet, dass man die JVM mit -Djava.awt.headless=true (oder so ähnlich ;)) startet. Daraufhin wirft jede Methode, die irgendetwas UI-technisches macht, eine HeadlessException.
API:HeadlessException hat gesagt.:
Thrown when code that is dependent on a keyboard, display, or mouse is called in an environment that does not support a keyboard, display, or mouse.
 

André Uhres

Top Contributor
Sancho hat gesagt.:
...Kann ich ihn irgendwie dazu zwingen die drei Spalten auf eine Seite zu drucken...
Code:
       TableModel save = table.getModel();
        int resizeMode = table.getAutoResizeMode();
        table.setModel(printTableModel);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        for (int i = 0; i < 3; i++) {
            table.getColumnModel().getColumn(i).setPreferredWidth(150);
        }
        table.validate();
        try {
            table.print(JTable.PrintMode.NORMAL);
        } catch (PrinterException ex) {
            ex.printStackTrace();
        }
        table.setModel(save);
        table.setAutoResizeMode(resizeMode);
 

Sancho

Aktives Mitglied
super, genau so wie es sein soll. Ich danke dir für deine Bemühungen!

Schönen Sonntag noch!
 

André Uhres

Top Contributor
Illuvatar hat gesagt.:
...Headless Mode bedeutet, dass man die JVM mit -Djava.awt.headless=true (oder so ähnlich ;)) startet.
Daraufhin wirft jede Methode, die irgendetwas UI-technisches macht, eine HeadlessException...
Danke für die Info, ist sicher gut zu wissen.
Aber ich weiss nicht so richtig wie ich das im vorliegenden Fall anwenden kann.
Ist allerdings jetzt auch nicht mehr so wichtig weil es ja kein Problem mehr ist, die JTable zu drucken.
 

Illuvatar

Top Contributor
Das bezog sich darauf:
Du meintest, die JTable muss sichtbar sein, damit sie gedruckt werden kann. Laut API kann eine JTable aber auch im Headless Mode gedruckt werden. In diesem kann sie aber sicher nicht sichtbar sein. Also kann es IMO eigentlich keine Probleme machen, dass eine JTable nicht sichtbar ist beim Drucken, auch wenn ich das bisher weder mit noch ohne sichtbar probiert habe.
Ist allerdings jetzt auch nicht mehr so wichtig weil es ja kein Problem mehr ist, die JTable zu drucken. :D
 

Sancho

Aktives Mitglied
also das ist zwar nicht mehr so wichtig, aber was noch ein bisschen stört ist das der bedruckbare Bereich etwas klein erscheint. Ich hab jetzt 2 Stunden gesucht wie ich das änder. Hab mir die Klassen Paper, Pageformat etc. angeschaut. Dort kann man já den Bereich einstellen. Aber wie übergebe ich dann den Bereich dem print ?
es gibt ja leider keine Methode wie
component.print(Pageformat pf); oder component.print (Paper paper);

Weiß da vielleicht jemand noch weiter ?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
S JTable im Hoch- und Querformat angepasst drucken AWT, Swing, JavaFX & SWT 1
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
M Swing JTable drucken/Darstellung AWT, Swing, JavaFX & SWT 2
O JTable mit Inhalt drucken AWT, Swing, JavaFX & SWT 3
N JTable: Drucken mit größerer RowHeight AWT, Swing, JavaFX & SWT 2
C JTable drucken AWT, Swing, JavaFX & SWT 7
H JTable drucken mit Header AWT, Swing, JavaFX & SWT 4
ARadauer jtable drucken unter java 1.3 AWT, Swing, JavaFX & SWT 2
R Drucken unter jdk 1.4 mit JTable AWT, Swing, JavaFX & SWT 11
P Idee zum drucken von JTextField und JTable AWT, Swing, JavaFX & SWT 2
O JTable, mehrere Spalten drucken AWT, Swing, JavaFX & SWT 4
foobar JTable im Hintergrund drucken AWT, Swing, JavaFX & SWT 2
H JTable drucken AWT, Swing, JavaFX & SWT 4
P JTable drucken AWT, Swing, JavaFX & SWT 2
I Swing JTable zeichnet kein vertical Grid AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben