En esta entrada os voy a poner un ejemplo de como imprimir una Tabla en vuestra impresora directamente, es muy sencillo así que no tiene muchas florituras.
La salida por la impresora será Un encabezado, la tabla en el cuerpo de la hoja y en el pie el número de página.
public class Principal {
private static JButton btImprimir;
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com. sun.java.swing.plaf.nimbus. NimbusLookAndFeel");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch ( UnsupportedLookAndFeelExceptio n e) {
e.printStackTrace();
}
JFrame v = new JFrame();
v.setBounds(0,0,835,360);
v.setLayout(null);
v.setVisible(true);
v.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
final String [] columnas = {"NOMBRE", "APELLIDOS", "DNI", "ESTADO", "BLOQUEO", "ALTA"};
final DefaultTableModel dtm = new DefaultTableModel();
final JTable tabla1 = new JTable(dtm);
tabla1. setUpdateSelectionOnSort(true) ;
for (int i=0; i<6; i++){
dtm.addColumn(columnas[i]);
}
tabla1. setPreferredScrollableViewport Size(new Dimension(800,200));
JScrollPane scrollPane = new JScrollPane(tabla1);
v.add(scrollPane);
scrollPane.setBounds(10,10, 800,200);
final Object [] fila2 = {"Carlos", "Mateo Ruiz", "71024121F", "ACTIVO", "0", "2012/02/02"};
final Object [] fila3 = {"Marta", "Perez Hidalgo", "29116227H", "ACTIVO", "1", "2010/21/10"};
dtm.addRow(fila2);
dtm.addRow(fila3);
btImprimir = new JButton("IMPRIMIR");
btImprimir.setBounds(10, 250, 120, 25);
v.add(btImprimir);
btImprimir.addActionListener( new java.awt.event.ActionListener( ) {
public void actionPerformed(java.awt. event.ActionEvent evt) {
try {
// tabla1.print();//envia los datos de la tabla a la impresora
MessageFormat headerFormat = new MessageFormat("Listado de Clientes 2010-2012);
MessageFormat footerFormat = new MessageFormat("- Página {0} -");
tabla.print(PrintMode.FIT_WIDTH, headerFormat, footerFormat);
} catch (PrinterException ex) {
JOptionPane.showMessageDialog(null, "No se ha podido imprimir correctamente, intentalo más tarde.");
}
}
});
v.repaint();
}