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 ventanas; import Vistas.GananciaCategoria; import Vistas.ObtenerGananciaXCategoria; import Vistas.ObtenerVistaCategorias; import Vistas.ObtenerVistaInversion; import Vistas.ObtenerVistaProveedor; import Vistas.ProveedorProductosEntregados; import Vistas.VistaCategorias; import Vistas.VistaInversioPedido; import java.awt.BorderLayout; import java.awt.event.ItemEvent; import java.util.ArrayList; import java.util.List; import javax.swing.JPanel; import mysql_conexion.Rol; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; /** * * @author Ingenieros */ public class Reportes extends javax.swing.JFrame { /** * Creates new form Graficas */ public Reportes() { initComponents(); setLocationRelativeTo(null); } public static Rol r = new Rol("root", "Soy Root NV.1"); /** * 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() { jPanel2 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jComboGrafica = new javax.swing.JComboBox<>(); jLabel2 = new javax.swing.JLabel(); jComboTipo = new javax.swing.JComboBox<>(); jPanelGrafica = new javax.swing.JPanel(); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup(jPanel2Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 100, Short.MAX_VALUE)); jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 100, Short.MAX_VALUE)); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel1.setText("Seleciona una Grafica"); jComboGrafica.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jComboGrafica.setModel(new javax.swing.DefaultComboBoxModel<>( new String[] { "Seleccione una Grafica", "Nmero de productos por categoria", "Ganancia por Categoria", "Cantidad de prodctos pedidos", "Inversion" })); jComboGrafica.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { jComboGraficaItemStateChanged(evt); } }); jLabel2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel2.setText("Tipo"); jComboTipo.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jComboTipo.setModel( new javax.swing.DefaultComboBoxModel<>(new String[] { "Seleccione un tipo", "Barras", "Pastel" })); jPanelGrafica.setBackground(new java.awt.Color(153, 153, 153)); jPanelGrafica.setLayout(new java.awt.BorderLayout()); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent( jPanelGrafica, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup().addGap(32, 32, 32).addComponent(jLabel2) .addGap(18, 18, 18) .addComponent(jComboTipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 52, Short.MAX_VALUE) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jComboGrafica, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap())); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanelGrafica, javax.swing.GroupLayout.DEFAULT_SIZE, 326, Short.MAX_VALUE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jComboGrafica, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2).addComponent(jComboTipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(20, 20, 20))); pack(); }// </editor-fold>//GEN-END:initComponents private void jComboGraficaItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboGraficaItemStateChanged int ind1 = jComboGrafica.getSelectedIndex(); int ind2 = jComboTipo.getSelectedIndex(); double por = 0, angulo = 0, sum = 0; String titulo, titulox, tituloy; DefaultCategoryDataset data = new DefaultCategoryDataset(); DefaultPieDataset pData = new DefaultPieDataset(); if (evt.getStateChange() == ItemEvent.SELECTED) { switch (ind1) { case 1: if (ind2 == 1) { List<VistaCategorias> vista1 = new ArrayList<>(); ObtenerVistaCategorias ob = new ObtenerVistaCategorias(); vista1 = ob.obtenerVista(r); for (int i = 0; i < vista1.size(); i++) { data.setValue(vista1.get(i).getCantidad(), "Categoria", vista1.get(i).getCategoria()); } titulo = "Productos por Categoria"; titulox = "Categorias"; tituloy = "Numero de Productos"; crearBarChart(data, jPanelGrafica, titulo, titulox, tituloy); } else { if (ind2 == 2) { List<VistaCategorias> vista1 = new ArrayList<>(); ObtenerVistaCategorias ob = new ObtenerVistaCategorias(); vista1 = ob.obtenerVista(r); for (int i = 0; i < vista1.size(); i++) { sum = vista1.get(i).getCantidad(); } for (int i = 0; i < vista1.size(); i++) { por = vista1.get(i).getCantidad() / sum; angulo = por * 360; pData.setValue(vista1.get(i).getCategoria(), angulo); } titulo = "Productos por Categoria"; crearPieChart(pData, jPanelGrafica, titulo); } } break; case 2: if (ind2 == 1) { List<GananciaCategoria> ganancia = new ArrayList<>(); ObtenerGananciaXCategoria ob = new ObtenerGananciaXCategoria(); ganancia = ob.obtenerGanancia(r); for (int i = 0; i < ganancia.size(); i++) { data.setValue(ganancia.get(i).getGanacia(), "Categoria", ganancia.get(i).getCategoria()); } titulo = "Ganancias por Categoria"; titulox = "Categorias"; tituloy = "Ganancias"; crearBarChart(data, jPanelGrafica, titulo, titulox, tituloy); } else { if (ind2 == 2) { List<GananciaCategoria> ganancia = new ArrayList<>(); ObtenerGananciaXCategoria ob = new ObtenerGananciaXCategoria(); ganancia = ob.obtenerGanancia(r); System.out.println(ganancia.size()); for (int i = 0; i < ganancia.size(); i++) { data.setValue(ganancia.get(i).getGanacia(), "Categoria", ganancia.get(i).getCategoria()); } for (int i = 0; i < ganancia.size(); i++) { sum = ganancia.get(i).getGanacia(); } for (int i = 0; i < ganancia.size(); i++) { por = ganancia.get(i).getGanacia() / sum; angulo = por * 360; pData.setValue(ganancia.get(i).getCategoria(), angulo); } titulo = "Ganancia por Categoria"; crearPieChart(pData, jPanelGrafica, titulo); } } break; case 3: if (ind2 == 1) { List<ProveedorProductosEntregados> lista = new ArrayList<>(); ObtenerVistaProveedor op = new ObtenerVistaProveedor(); lista = op.obtenerLista(r); for (int i = 0; i < lista.size(); i++) { data.setValue(lista.get(i).getNum_productos_entregados(), "Proveedor", lista.get(i).getProveedor()); } titulo = "Cantidad de productos Entregados"; titulox = "Proveedor"; tituloy = "Cantidad"; crearBarChart(data, jPanelGrafica, titulo, titulox, tituloy); } else { if (ind2 == 2) { List<ProveedorProductosEntregados> lista = new ArrayList<>(); ObtenerVistaProveedor op = new ObtenerVistaProveedor(); lista = op.obtenerLista(r); for (int i = 0; i < lista.size(); i++) { data.setValue(lista.get(i).getNum_productos_entregados(), "Proveedor", lista.get(i).getProveedor()); } for (int i = 0; i < lista.size(); i++) { sum = lista.get(i).getNum_productos_entregados(); } for (int i = 0; i < lista.size(); i++) { por = lista.get(i).getNum_productos_entregados() / sum; angulo = por * 360; pData.setValue(lista.get(i).getProveedor(), angulo); } titulo = "Cantidad de productos Entregados"; crearPieChart(pData, jPanelGrafica, titulo); } } break; case 4: if (ind2 == 1) { List<VistaInversioPedido> vista = new ArrayList<>(); ObtenerVistaInversion obt = new ObtenerVistaInversion(); vista = obt.obtenerVista(r); for (int i = 0; i < vista.size(); i++) { data.setValue(vista.get(i).getInversion(), "Proveedor", vista.get(i).getProveedores()); } titulo = "Cantidad de inversion"; titulox = "Proveedor"; tituloy = "Inversion"; crearBarChart(data, jPanelGrafica, titulo, titulox, tituloy); } else { if (ind2 == 2) { List<VistaInversioPedido> vista = new ArrayList<>(); ObtenerVistaInversion obt = new ObtenerVistaInversion(); vista = obt.obtenerVista(r); for (int i = 0; i < vista.size(); i++) { data.setValue(vista.get(i).getInversion(), "Proveedor", vista.get(i).getProveedores()); } for (int i = 0; i < vista.size(); i++) { sum = vista.get(i).getInversion(); } for (int i = 0; i < vista.size(); i++) { por = vista.get(i).getInversion() / sum; angulo = por * 360; pData.setValue(vista.get(i).getProveedores(), angulo); } titulo = "Cantidad de inversion"; crearPieChart(pData, jPanelGrafica, titulo); } } break; } } }//GEN-LAST:event_jComboGraficaItemStateChanged /** * @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(Reportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Reportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Reportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Reportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Reportes().setVisible(true); } }); } public static void crearBarChart(DefaultCategoryDataset data, JPanel jgra, String titulo, String titulox, String tituloy) { JFreeChart grafica; grafica = ChartFactory.createBarChart(titulo, titulox, tituloy, data, PlotOrientation.VERTICAL, true, true, true); ChartPanel cPanel = new ChartPanel(grafica); jgra.removeAll(); jgra.repaint(); jgra.add(cPanel, BorderLayout.CENTER); jgra.repaint(); } public static void crearPieChart(DefaultPieDataset pData, JPanel jgra, String titulo) { JFreeChart grafica; grafica = ChartFactory.createPieChart3D(titulo, pData, true, true, true); ChartPanel panel = new ChartPanel(grafica); jgra.removeAll(); jgra.add(panel, BorderLayout.CENTER); jgra.repaint(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox<String> jComboGrafica; private javax.swing.JComboBox<String> jComboTipo; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanelGrafica; // End of variables declaration//GEN-END:variables }