Java tutorial
/* * 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. */ package control; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * * @author Jesus Ariel */ public class listaEquiposUsua extends javax.swing.JFrame { private String solicitante; private String proyecto; private boolean usuario = false; /** * Creates new form listaEquipos */ public listaEquiposUsua(boolean usuario) { this.usuario = usuario; String cate = null; initComponents(); iniciar(cate); iniciar2(); recorre(); this.proyecto = null; this.solicitante = null; if (usuario) { jButton1.setEnabled(false); jButton3.setEnabled(false); jButton4.setEnabled(false); } } public listaEquiposUsua(String[] ides2, String proyecto, String solicitante, boolean usuario) { this.usuario = usuario; this.proyecto = proyecto; this.solicitante = solicitante; System.out.println("Si llegaron los IDES2"); String cate = null; initComponents(); iniciar(cate); iniciar2(); recorre(); seleccionados(ides2); System.out.println("Pasa seleccionados"); if (usuario) { jButton1.setEnabled(false); jButton3.setEnabled(false); jButton4.setEnabled(false); } } /** * 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() { jButton5 = new javax.swing.JButton(); jButton1 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton6 = new javax.swing.JButton(); jScrollPane2 = new javax.swing.JScrollPane(); tabEquipo = new javax.swing.JTable(); Categoria = new javax.swing.JComboBox(); jLabel1 = new javax.swing.JLabel(); jButton4 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("LISTA DE EQUIPOS"); jButton5.setText("Pagina Principal"); jButton5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton5ActionPerformed(evt); } }); jButton1.setText("Crear Nuevo"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton3.setText("Eliminar"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jButton6.setText("Prestar"); jButton6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton6ActionPerformed(evt); } }); tabEquipo.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "Id Equipo", "Nombre del Equipo", "Categoria", "Accesorios", "Decripcin", "Marca", "Equipo Activo/Inactivo", "Seleccionar " }) { Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class }; boolean[] canEdit = new boolean[] { false, false, false, false, false, false, false, true }; public Class getColumnClass(int columnIndex) { return types[columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit[columnIndex]; } }); jScrollPane2.setViewportView(tabEquipo); if (tabEquipo.getColumnModel().getColumnCount() > 0) { tabEquipo.getColumnModel().getColumn(6).setResizable(false); } Categoria.setModel(new javax.swing.DefaultComboBoxModel( new String[] { "Audio y Video", "Cables y Adaptadores", "Computacin" })); Categoria.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { CategoriaActionPerformed(evt); } }); jLabel1.setText("Filtrar Equipo por:"); jButton4.setText("Modificar"); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); jButton2.setText("Excel"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); 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(70, 70, 70).addComponent(jButton1) .addGap(134, 134, 134).addComponent(jButton4).addGap(140, 140, 140).addComponent(jButton3) .addGap(121, 121, 121).addComponent(jButton6).addGap(0, 59, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup().addGap(30, 30, 30) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 723, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton2).addGap(12, 12, 12)) .addGroup(layout.createSequentialGroup().addComponent(jButton5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(Categoria, javax.swing.GroupLayout.PREFERRED_SIZE, 336, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(28, 28, 28))))); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(11, 11, 11).addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButton5) .addComponent(Categoria, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(26, 26, 26) .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE) .addGap(26, 26, 26)) .addGroup(layout.createSequentialGroup().addGap(44, 44, 44).addComponent(jButton2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1).addComponent(jButton4)) .addComponent(jButton3).addComponent(jButton6)) .addGap(32, 32, 32))); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed String ide = null; int mnb = 0; int e = 0; for (int i = 0; i < tabEquipo.getRowCount(); i++) { if ((boolean) tabEquipo.getValueAt(i, 7) == true) { e++; } } int n = e; String[] ides = new String[n]; if (e >= 1) { for (int i = 0; i < tabEquipo.getRowCount(); i++) { if ((boolean) tabEquipo.getValueAt(i, 7) == true) { if ("inactivo".compareTo((String) tabEquipo.getValueAt(i, 6)) != 0) { ide = (String) tabEquipo.getValueAt(i, 0); ides[mnb] = ide; mnb++; } else { JOptionPane.showMessageDialog(this, "No se puede prstar equipo inactivo"); return; } } } nuevoReporte IE = new nuevoReporte(ides, proyecto, solicitante, usuario); IE.setVisible(true); dispose(); } else { if (ide == null) { JOptionPane.showMessageDialog(rootPane, "Selecciona el o los equipo(s) que desees o prestar"); } } /*for(int i=0; i<ides.length; i++) { System.out.print(ides[i]); System.out.println("\n Lista equipos"); }*/ }//GEN-LAST:event_jButton6ActionPerformed private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed // TODO add your handling code here: entrarUsua pp = new entrarUsua(); pp.setVisible(true); dispose(); }//GEN-LAST:event_jButton5ActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: equipo IE = new equipo(); IE.setVisible(true); dispose(); JOptionPane.showMessageDialog(null, "VERIFICA LA CATEGORIA"); }//GEN-LAST:event_jButton1ActionPerformed private void CategoriaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CategoriaActionPerformed // TODO add your handling code here: Limpiar(tabEquipo); Object cat = Categoria.getSelectedItem(); String cate = String.valueOf(cat); iniciar(cate); recorre(); //tabEquipo.setModel(new DefaultTableModel()); }//GEN-LAST:event_CategoriaActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed elimina(); listaEquipos le = new listaEquipos(usuario); le.setVisible(true); dispose(); }//GEN-LAST:event_jButton3ActionPerformed private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed // TODO add your handling code here: String ide = null; int e = 0; for (int i = 0; i < tabEquipo.getRowCount(); i++) { if ((boolean) tabEquipo.getValueAt(i, 7) == true) { e++; } } //if(e==1){ for (int i = 0; i < tabEquipo.getRowCount(); i++) { if ((boolean) tabEquipo.getValueAt(i, 7) == true) { ide = (String) tabEquipo.getValueAt(i, 0); equipoModif IE = new equipoModif(ide); IE.setVisible(true); dispose(); } // } //}else //{ /*if(e>1){ JOptionPane.showMessageDialog(rootPane, "Debes Seleccionar SOLAMENTE UN EQUIPO"); }else{ if(ide == null) { JOptionPane.showMessageDialog(rootPane, "Selecciona un equipo para poder modificarlo"); } }*/ } }//GEN-LAST:event_jButton4ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed JFileChooser jf = new JFileChooser(); int res = jf.showSaveDialog(this); if (res == JFileChooser.APPROVE_OPTION) { String path = jf.getSelectedFile() + ".pdf"; System.out.println("Archivo " + path); try { if (this.generapdf(path)) { JOptionPane.showMessageDialog(this, "Se ha almacenado el archivo "); } else { JOptionPane.showMessageDialog(this, "No se ha almacenado el archivo "); } } catch (DocumentException ex) { Logger.getLogger(nuevoReporte.class.getName()).log(Level.SEVERE, null, ex); } catch (FileNotFoundException ex) { Logger.getLogger(nuevoReporte.class.getName()).log(Level.SEVERE, null, ex); } } }//GEN-LAST:event_jButton2ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox Categoria; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JButton jButton6; private javax.swing.JLabel jLabel1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTable tabEquipo; // End of variables declaration//GEN-END:variables public void iniciar(String cate) { conectar cc = new conectar(); // Llamar al objeto conectar Connection con = cc.conexion();//creamos la variable conexion con el metodo conexion DefaultTableModel Modelo = (DefaultTableModel) tabEquipo.getModel(); try { String sql = "select idEquipo, nomEquipo, Categoria, accesorios, descEquipo," + "marcaEquipo, equipoActivo from equipo where Categoria = '" + cate + "' order by IdEquipo;"; try (CallableStatement cmd = con.prepareCall(sql)) { ResultSet rs = cmd.executeQuery(); while (rs.next()) { Object[] datos = new Object[7]; for (int i = 0; i <= 6; i++) { datos[i] = rs.getString(i + 1); //System.out.println(datos [i]); //System.out.println(rs); } Modelo.addRow(datos); } } con.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); } } public void iniciar2() { conectar cc = new conectar(); // Llamar al objeto conectar Connection con = cc.conexion();//creamos la variable conexion con el metodo conexion DefaultTableModel Modelo = (DefaultTableModel) tabEquipo.getModel(); try { String sql = "select idEquipo, nomEquipo, Categoria, accesorios, descEquipo," + "marcaEquipo, equipoActivo from equipo WHERE order by IdEquipo;"; try (CallableStatement cmd = con.prepareCall(sql)) { ResultSet rs = cmd.executeQuery(); while (rs.next()) { Object[] datos = new Object[7]; for (int i = 0; i <= 6; i++) { datos[i] = rs.getString(i + 1); //System.out.println(datos [i]); //System.out.println(rs); } Modelo.addRow(datos); } } con.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); } //recorre(); } public void recorre() { for (int i = 0; i < tabEquipo.getRowCount(); i++) { tabEquipo.setValueAt(false, i, 7); } } private void Limpiar(JTable tabEquipoJTable) { while (tabEquipo.getRowCount() > 0) { ((DefaultTableModel) tabEquipo.getModel()).removeRow(0); } } public void elimina() { int response = JOptionPane.showConfirmDialog(null, "Seguro que quieres ELIMINAR", "ELIMINAR?", JOptionPane.YES_NO_OPTION); if (response == JOptionPane.NO_OPTION) { System.out.println("NO"); } else if (response == JOptionPane.YES_OPTION) { System.out.println("SI"); for (int i = 0; i < tabEquipo.getRowCount(); i++) { boolean selec = (boolean) tabEquipo.getValueAt(i, 7); if (selec == true) { conectar cc = new conectar(); // Llamar al objeto conectar Connection con = cc.conexion();//creamos la variable conexion con el metodo conexion String id = (String) tabEquipo.getValueAt(i, 0); String sql = "DELETE from equipo WHERE idEquipo = '" + id + "';"; try { //System.out.println(id); PreparedStatement pst = con.prepareStatement(sql); //se hace para relacionar mi primer signo con marca y asi sucesivamente pst.executeUpdate(); //int n = 1; cuantos registros se han agregado n sera 1 osea 1 registro JOptionPane.showMessageDialog(rootPane, "Equipo Eliminado con xito"); } catch (SQLException ex) { JOptionPane.showMessageDialog(rootPane, ex); //java.util.logging.Logger.getLogger(.class.getName()).log(Level.SEVERE, null, ex); } } } } } public void seleccionados(String[] ides2) { System.out.println("Entra a Seleccionados"); for (int i = 0; i < ides2.length; i++) { System.out.println("Aqui pasa por los ides2"); System.out.println(ides2[i]); for (int p = 0; p <= tabEquipo.getRowCount() - 1; p++) { System.out.println("Aqui pasa por la tabla"); System.out.println(ides2[i] + " =? " + tabEquipo.getValueAt(p, 0)); if (ides2[i].compareTo(tabEquipo.getValueAt(p, 0).toString()) == 0) { System.out.println("Se supone que los marca"); tabEquipo.setValueAt(true, p, 7); } } } } public Object[][] getTableData(JTable table) { DefaultTableModel dtm = (DefaultTableModel) table.getModel(); int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount(); Object[][] tableData = new Object[nRow][nCol]; for (int i = 0; i < nRow; i++) for (int j = 0; j < nCol; j++) tableData[i][j] = dtm.getValueAt(i, j); return tableData; } private boolean generapdf(String path) throws DocumentException, FileNotFoundException { boolean estado = false; Document document = new Document(); //OutputStreamWriter destino = new OutputStreamWriter(fos,"ISO-8859-1"); PdfWriter.getInstance(document, new FileOutputStream(path)); document.open(); Paragraph paragraph1 = new Paragraph("Equipos"); document.add(paragraph1); Paragraph paragraph2 = new Paragraph(""); paragraph2.setSpacingBefore(38f); document.add(paragraph2); PdfPTable table = new PdfPTable(7); table.addCell("Id "); table.addCell("Nombre"); table.addCell("categoria"); table.addCell("Accesorios"); table.addCell("Descripcion"); table.addCell("Marca"); table.addCell("Estado"); Object[][] tabla = this.getTableData(tabEquipo); for (Object[] o : tabla) { int i = 0; for (Object e : o) { if (i <= 6) { if (e != null) table.addCell((String) e.toString()); else table.addCell(""); } i++; } } document.add(table); document.close(); return true; } private boolean generaExcel(String path) { // Se crea el libro HSSFWorkbook libro = new HSSFWorkbook(); // Se crea una hoja dentro del libro HSSFSheet hoja = libro.createSheet("Equipos"); // Se crea una fila dentro de la hoja HSSFRow fila = hoja.createRow(0); // Se crea una celda dentro de la fila HSSFCell celda = fila.createCell((short) 0); HSSFRichTextString texto = new HSSFRichTextString("Id "); celda.setCellValue(texto); celda = fila.createCell((short) 1); texto = new HSSFRichTextString("Nombre"); celda.setCellValue(texto); celda = fila.createCell((short) 2); texto = new HSSFRichTextString("Categoria"); celda.setCellValue(texto); celda = fila.createCell((short) 3); texto = new HSSFRichTextString("Accesorios"); celda.setCellValue(texto); celda = fila.createCell((short) 4); texto = new HSSFRichTextString("Descripcion"); celda.setCellValue(texto); celda = fila.createCell((short) 5); texto = new HSSFRichTextString("Marca"); celda.setCellValue(texto); celda = fila.createCell((short) 6); texto = new HSSFRichTextString("Estado"); celda.setCellValue(texto); int nr = 1; Object[][] tabla = this.getTableData(tabEquipo); for (Object[] o : tabla) { fila = hoja.createRow(nr); int i = 0; for (Object e : o) { celda = fila.createCell((short) i); if (i <= 6) { if (e != null) { texto = new HSSFRichTextString((String) e.toString()); } else { texto = new HSSFRichTextString(""); } celda.setCellValue(texto); } i++; } nr++; } // Se salva el libro. try { FileOutputStream elFichero = new FileOutputStream(path); libro.write(elFichero); elFichero.close(); } catch (Exception e) { e.printStackTrace(); } return true; } }