Hallo Java-Programmer,
habe das im Thread beschrieben Problem, dass mir keine Spaltentitel im pdf angezeigt werden.
Hier ein kleines Testprogramm, welches eine pdf- File erzeugt.
Es wird mir immer nur die Tabelle ohne den Spaltentiteln angezeigt. Könnt vielleicht am ScrollPane liegen.
Ich hoffe ihr könnt mir helfen
Viele Dank schonmal
habe das im Thread beschrieben Problem, dass mir keine Spaltentitel im pdf angezeigt werden.
Hier ein kleines Testprogramm, welches eine pdf- File erzeugt.
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.JTable;
import java.awt.Insets;
import java.awt.GridLayout;
import java.io.FileOutputStream;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Test extends JFrame {
private JPanel contentPane;
private JPanel panel;
private JButton btnPdfExport;
private JPanel panel_1;
private JTable table;
private JScrollPane scrollPane;
public Test() {
initialize();
setVisible(true);
}
private void initialize() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new GridLayout(0, 1, 0, 0));
contentPane.add(getPanel());
}
private JPanel getPanel() {
if (panel == null) {
panel = new JPanel();
GridBagLayout gbl_panel = new GridBagLayout();
gbl_panel.columnWidths = new int[]{170, 0};
gbl_panel.rowHeights = new int[]{208, 148, 0};
gbl_panel.columnWeights = new double[]{1.0, Double.MIN_VALUE};
gbl_panel.rowWeights = new double[]{1.0, 1.0, Double.MIN_VALUE};
panel.setLayout(gbl_panel);
GridBagConstraints gbc_panel_1 = new GridBagConstraints();
gbc_panel_1.insets = new Insets(0, 0, 5, 0);
gbc_panel_1.fill = GridBagConstraints.BOTH;
gbc_panel_1.gridx = 0;
gbc_panel_1.gridy = 0;
panel.add(getPanel_1(), gbc_panel_1);
GridBagConstraints gbc_btnPdfExport = new GridBagConstraints();
gbc_btnPdfExport.gridx = 0;
gbc_btnPdfExport.gridy = 1;
panel.add(getBtnPdfExport(), gbc_btnPdfExport);
}
return panel;
}
private JButton getBtnPdfExport() {
if (btnPdfExport == null) {
btnPdfExport = new JButton("pdf Export");
btnPdfExport.addActionListener(new BtnPdfExportActionListener());
}
return btnPdfExport;
}
private class BtnPdfExportActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
createPdf();
}
}
private JPanel getPanel_1() {
if (panel_1 == null) {
panel_1 = new JPanel();
panel_1.setLayout(new GridLayout(0, 1, 0, 0));
panel_1.add(getScrollPane_1());
}
return panel_1;
}
private JTable getTable_1() {
if (table == null) {
table = new JTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{new Integer(1), new Integer(2), "test", "test", "test", "test", "test"},
{new Integer(1), new Integer(2), "test", "test", "test", "test", "test"},
},
new String[] {
"1.Spalte", "2.Spalte", "3.Spalte", "4.Spalte", "5.Spalte", "6.Spalte", "7.Spalte"
}
));
}
return table;
}
private JScrollPane getScrollPane_1() {
if (scrollPane == null) {
scrollPane = new JScrollPane();
scrollPane.setViewportView(getTable_1());
}
return scrollPane;
}
public void createPdf() {
Document document = new Document();
try {
PdfWriter writer;
writer = PdfWriter.getInstance(document, new FileOutputStream("JTableTest.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
PdfTemplate tp = cb.createTemplate(500, 500);
Graphics2D g2;
g2 = tp.createGraphicsShapes(500, 500);
table.print(g2);
g2.dispose();
cb.addTemplate(tp, 30, 300);
} catch (Exception e) {
System.err.println(e.getMessage());
}
document.close();
}
}
Es wird mir immer nur die Tabelle ohne den Spaltentiteln angezeigt. Könnt vielleicht am ScrollPane liegen.
Ich hoffe ihr könnt mir helfen
Viele Dank schonmal