Java tutorial
package VentanaJava; import java.awt.Desktop; import java.io.File; import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author Acer */ public class ConsultarIngresoMedianoExportar extends javax.swing.JFrame { int mesSeleccionado; /** * Creates new form ConsultarIngresoMedianoExportar */ public ConsultarIngresoMedianoExportar(int mes) { mesSeleccionado = mes; initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); ExportarPlan = new javax.swing.JButton(); Salir = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); TablaConsultaIngresoLargo = new javax.swing.JTable(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setFont(new java.awt.Font("Cambria", 0, 22)); // NOI18N jLabel1.setText("Planificacin de Ingreso a Mediano Plazo"); ExportarPlan.setFont(new java.awt.Font("Calibri Light", 0, 22)); // NOI18N ExportarPlan.setText("Exportar Plan"); ExportarPlan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ExportarPlanActionPerformed(evt); } }); Salir.setFont(new java.awt.Font("Calibri Light", 0, 22)); // NOI18N Salir.setText("Salir"); Salir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { SalirActionPerformed(evt); } }); TablaConsultaIngresoLargo.setFont(new java.awt.Font("Calibri Light", 0, 18)); // NOI18N TablaConsultaIngresoLargo.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "Granja", "Galera", "Fecha a Ingresar", "Cantidad a Ingresar", "Rol" }) { Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.Object.class, java.lang.Float.class, java.lang.Object.class }; boolean[] canEdit = new boolean[] { false, false, false, false, false }; public Class getColumnClass(int columnIndex) { return types[columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit[columnIndex]; } }); TablaConsultaIngresoLargo.addAncestorListener(new javax.swing.event.AncestorListener() { public void ancestorMoved(javax.swing.event.AncestorEvent evt) { } public void ancestorAdded(javax.swing.event.AncestorEvent evt) { TablaConsultaIngresoLargoAncestorAdded(evt); } public void ancestorRemoved(javax.swing.event.AncestorEvent evt) { } }); jScrollPane1.setViewportView(TablaConsultaIngresoLargo); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(45, 45, 45).addComponent(ExportarPlan) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(Salir).addGap(78, 78, 78)) .addGroup(layout.createSequentialGroup().addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 682, Short.MAX_VALUE) .addContainerGap()) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1).addGap(141, 141, 141))); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ExportarPlan).addComponent(Salir)) .addGap(21, 21, 21))); pack(); }// </editor-fold>//GEN-END:initComponents private void SalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SalirActionPerformed this.dispose(); }//GEN-LAST:event_SalirActionPerformed private void TablaConsultaIngresoLargoAncestorAdded(javax.swing.event.AncestorEvent evt) {//GEN-FIRST:event_TablaConsultaIngresoLargoAncestorAdded DefaultTableModel model = (DefaultTableModel) TablaConsultaIngresoLargo.getModel(); String driver = "com.mysql.jdbc.Driver"; String connection = "jdbc:mysql://localhost:3306/Cargill"; String user = "root"; String password = "admi"; try { Class.forName(driver); Connection con = DriverManager.getConnection(connection, user, password); if (!con.isClosed()) { PreparedStatement planes = con.prepareStatement( "SELECT Date_format(`ingreso mediano plazo`.`Fecha de ingreso`,'%d/%m/%Y'), `ingreso mediano plazo`.`Cantidad a ingresar`, `ingreso mediano plazo`.`Rol`, `galera`.`Nombre Granja`, `galera`.`Numero de Galera` FROM `cargill`.`ingreso mediano plazo` inner join `cargill`.`galera` on `ingreso mediano plazo`.`Galera_idGalera`= `galera`.`idGalera` where month(`ingreso mediano plazo`.`Fecha de ingreso`) = ?;"); planes.setInt(1, mesSeleccionado); ResultSet planesconsultados = planes.executeQuery(); while (planesconsultados.next()) { model.addRow(new Object[] { planesconsultados.getString( "Date_format(`ingreso mediano plazo`.`Fecha de ingreso`,'%d/%m/%Y')"), planesconsultados.getString("Nombre Granja"), Integer.parseInt(planesconsultados.getString("Numero de Galera")), Integer.parseInt(planesconsultados.getString("Cantidad a ingresar")), planesconsultados.getString("Rol") }); } planesconsultados.close(); planes.close(); con.close(); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_TablaConsultaIngresoLargoAncestorAdded private void ExportarPlanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ExportarPlanActionPerformed DefaultTableModel model = (DefaultTableModel) TablaConsultaIngresoLargo.getModel(); int filas = TablaConsultaIngresoLargo.getRowCount(); JFileChooser GuardarArchivo = new JFileChooser(); int opcion = GuardarArchivo.showSaveDialog(this); if (opcion == JFileChooser.APPROVE_OPTION) { String direccion = GuardarArchivo.getSelectedFile().toString(); XSSFWorkbook libro = new XSSFWorkbook(); XSSFSheet hoja = libro.createSheet(); XSSFRow fila = hoja.createRow(0); fila.createCell(0).setCellValue("Granja"); fila.createCell(1).setCellValue("Galera"); fila.createCell(2).setCellValue("Fecha de Ingreso"); fila.createCell(3).setCellValue("Cantidad a Ingresar"); fila.createCell(4).setCellValue("Rol"); XSSFRow hileras; for (int i = 0; i < filas; i++) { hileras = hoja.createRow((i + 1)); for (int e = 0; e < 5; e++) { hileras.createCell(e).setCellValue(model.getValueAt(i, e).toString()); } } try { libro.write(new FileOutputStream(new File(direccion + ".xlsx"))); Desktop.getDesktop().open(new File(direccion + ".xlsx")); this.dispose(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } }//GEN-LAST:event_ExportarPlanActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(ConsultarIngresoMedianoExportar.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(ConsultarIngresoMedianoExportar.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(ConsultarIngresoMedianoExportar.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(ConsultarIngresoMedianoExportar.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { int a = 0; new ConsultarIngresoMedianoExportar(a).setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton ExportarPlan; private javax.swing.JButton Salir; private javax.swing.JTable TablaConsultaIngresoLargo; private javax.swing.JLabel jLabel1; private javax.swing.JScrollPane jScrollPane1; // End of variables declaration//GEN-END:variables }