Cita:
Iniciado por chuidiang
Mismo problema, pero con Jbutton. Tienes uno como atributo, pero lo declaras local al metodo cuando lo creas. El que añades es null.
Se bueno.
Hola chuidiang
Pues ya aparece la ventana, no genera ni un error, pero no muestra la tabla
quite las declaraciones locales, asi deje el codigo
Código:
/**
* @(#)TablePrint.java
*
*
* @author
* @version 1.00 2010/4/30
*/
package recomendaciones.bases_de_datos;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import java.text.*;
import java.util.*;
import java.util.Date;
import java.io.*;
import javax.swing.table.*;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
public class TablePrint extends JPanel {
ResultSet rs;
DefaultTableModel modelo;
JTable table;
JButton button;
JScrollPane scrollPane;
public TablePrint()
{
getDatos();
configura();
muestra();
}
public void getDatos()
{
try
{
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conexion = DriverManager.getConnection("jdbc:mysql://172.29.182.95:3306/recomendaciones","root","123456");
Statement s = conexion.createStatement();
rs = s.executeQuery("(SELECT * FROM informe WHERE niv_risk='MEDIO'&&TO_DAYS(NOW())-TO_DAYS(fecha_inf)>=15&&fecha_seg='0000-00-00')UNION(SELECT * FROM informe WHERE niv_risk='ALTO'&&TO_DAYS(NOW())-TO_DAYS(fecha_inf)>=5&&fecha_seg='0000-00-00')UNION(SELECT * FROM informe WHERE niv_risk='BAJO'&&TO_DAYS(NOW())-TO_DAYS(fecha_inf)>=30&&fecha_seg='0000-00-00') ORDER BY niv_risk");
carga();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
public void carga()
{
try
{
modelo = new DefaultTableModel();
table = new JTable(modelo);
modelo.addColumn("no_inf");
modelo.addColumn("part_a");
modelo.addColumn("part_b");
modelo.addColumn("part_c");
modelo.addColumn("part_d");
modelo.addColumn("part_e");
modelo.addColumn("fecha_com");
modelo.addColumn("lugar");
modelo.addColumn("obj_com");
modelo.addColumn("fecha_inf");
modelo.addColumn("resp_inf");
modelo.addColumn("recom_a");
modelo.addColumn("recom_b");
modelo.addColumn("recom_c");
modelo.addColumn("recom_d");
modelo.addColumn("recom_e");
modelo.addColumn("niv_risk");
modelo.addColumn("dir_loc");
modelo.addColumn("fecha_seg");
while (rs.next())
{
Object [] fila = new Object[19];
for (int i=0;i<19;i++)
fila[i] = rs.getObject(i+1);
modelo.addRow(fila);
}
table.setModel(modelo);
}
catch (SQLException e)
{
}
}
public void configura()
{
scrollPane = new JScrollPane(table);
button = new JButton("Imprimir");
ActionListener printAction = new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
MessageFormat headerFormat = new MessageFormat("Page {0}\n CNA");
MessageFormat footerFormat = new MessageFormat("- {0} -");
table.print(JTable.PrintMode.FIT_WIDTH, headerFormat, footerFormat);
}
catch (PrinterException pe)
{
System.err.println("Error printing: " + pe.getMessage());
}
}
};
button.addActionListener(printAction);
}
public void muestra()
{
add(table);
add(scrollPane, BorderLayout.CENTER);
add(button);
}
public static void main(String args[]) {
TablePrint tb= new TablePrint();
JFrame frame = new JFrame("Table Printing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(tb);
frame.pack();
frame.setVisible(true);
}
}
Gracias, Saludos...