Guest User

AddBankNotes

a guest
Apr 26th, 2018
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.30 KB | None | 0 0
  1. package views;
  2.  
  3. import controllers.CountryController;
  4. import java.awt.HeadlessException;
  5. import java.awt.Image;
  6. import java.io.File;
  7. import javax.swing.ImageIcon;
  8. import javax.swing.JFileChooser;
  9. import javax.swing.filechooser.FileNameExtensionFilter;
  10. import javax.swing.table.DefaultTableModel;
  11. import models.Country;
  12.  
  13. /**
  14.  *
  15.  * @author Admin
  16.  */
  17. public class AddBankNotes extends javax.swing.JDialog {
  18.    
  19.     private final CountryController countryController;
  20.     private ImageIcon imgBanknote;
  21.  
  22.     /**
  23.      * Creates new form AddBankNotes
  24.      * @param parent
  25.      * @param modal
  26.      */
  27.     public AddBankNotes(java.awt.Frame parent, boolean modal) {
  28.         super(parent, modal);
  29.         initComponents();
  30.         countryController = new CountryController();
  31.         loadCountries();
  32.     }
  33.  
  34.     /**
  35.      * This method is called from within the constructor to initialize the form.
  36.      * WARNING: Do NOT modify this code. The content of this method is always
  37.      * regenerated by the Form Editor.
  38.      */
  39.     @SuppressWarnings("unchecked")
  40.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  41.     private void initComponents() {
  42.  
  43.         jLabel1 = new javax.swing.JLabel();
  44.         jLabel2 = new javax.swing.JLabel();
  45.         comboCountry = new javax.swing.JComboBox<>();
  46.         btnInsertar = new javax.swing.JButton();
  47.         jScrollPane1 = new javax.swing.JScrollPane();
  48.         taula = new javax.swing.JTable();
  49.         btnAceptar = new javax.swing.JButton();
  50.         btnCancelar = new javax.swing.JButton();
  51.  
  52.         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  53.         setTitle("Añadir a la colección");
  54.         setMinimumSize(new java.awt.Dimension(800, 400));
  55.  
  56.         jLabel1.setFont(new java.awt.Font("Tahoma", 1, 16)); // NOI18N
  57.         jLabel1.setText("Añadir billetes a la colección");
  58.  
  59.         jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  60.         jLabel2.setText("País:");
  61.  
  62.         comboCountry.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  63.  
  64.         btnInsertar.setText("Insertar imagenes");
  65.         btnInsertar.addActionListener(new java.awt.event.ActionListener() {
  66.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  67.                 btnInsertarActionPerformed(evt);
  68.             }
  69.         });
  70.  
  71.         taula.setModel(new javax.swing.table.DefaultTableModel(
  72.             new Object [][] {
  73.  
  74.             },
  75.             new String [] {
  76.                 "Imagen", "Descripción"
  77.             }
  78.         ) {
  79.             Class[] types = new Class [] {
  80.                 java.lang.Object.class, java.lang.String.class
  81.             };
  82.             /*
  83.             boolean[] canEdit = new boolean [] {
  84.                 false, true
  85.             };
  86.             */
  87.             public Class getColumnClass(int columnIndex) {
  88.                 return types [columnIndex];
  89.             }
  90.             /*public boolean isCellEditable(int rowIndex, int columnIndex) {
  91.                 return canEdit [columnIndex];
  92.             }*/
  93.             /*public boolean isCellEditable(int row, int column){
  94.                 return column != 0;
  95.             }*/
  96.         });
  97.         taula.setRowHeight(120);
  98.         jScrollPane1.setViewportView(taula);
  99.  
  100.         btnAceptar.setText("Aceptar");
  101.         btnAceptar.setToolTipText("");
  102.         btnAceptar.addActionListener(new java.awt.event.ActionListener() {
  103.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  104.                 btnAceptarActionPerformed(evt);
  105.             }
  106.         });
  107.  
  108.         btnCancelar.setText("Cancelar");
  109.         btnCancelar.addActionListener(new java.awt.event.ActionListener() {
  110.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  111.                 btnCancelarActionPerformed(evt);
  112.             }
  113.         });
  114.  
  115.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  116.         getContentPane().setLayout(layout);
  117.         layout.setHorizontalGroup(
  118.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  119.             .addGroup(layout.createSequentialGroup()
  120.                 .addContainerGap()
  121.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  122.                     .addComponent(jScrollPane1)
  123.                     .addGroup(layout.createSequentialGroup()
  124.                         .addComponent(jLabel2)
  125.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  126.                         .addComponent(comboCountry, 0, 591, Short.MAX_VALUE))
  127.                     .addGroup(layout.createSequentialGroup()
  128.                         .addComponent(jLabel1)
  129.                         .addGap(0, 0, Short.MAX_VALUE))
  130.                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  131.                         .addGap(0, 0, Short.MAX_VALUE)
  132.                         .addComponent(btnCancelar)
  133.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  134.                         .addComponent(btnAceptar))
  135.                     .addComponent(btnInsertar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  136.                 .addContainerGap())
  137.         );
  138.         layout.setVerticalGroup(
  139.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  140.             .addGroup(layout.createSequentialGroup()
  141.                 .addContainerGap()
  142.                 .addComponent(jLabel1)
  143.                 .addGap(18, 18, 18)
  144.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  145.                     .addComponent(jLabel2)
  146.                     .addComponent(comboCountry, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  147.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  148.                 .addComponent(btnInsertar)
  149.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  150.                 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 411, javax.swing.GroupLayout.PREFERRED_SIZE)
  151.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  152.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  153.                     .addComponent(btnAceptar)
  154.                     .addComponent(btnCancelar))
  155.                 .addContainerGap())
  156.         );
  157.  
  158.         pack();
  159.     }// </editor-fold>                        
  160.  
  161.     private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
  162.         dispose();
  163.     }                                          
  164.  
  165.     private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  166.         // TODO add your handling code here:
  167.     }                                          
  168.  
  169.     private void btnInsertarActionPerformed(java.awt.event.ActionEvent evt) {                                            
  170.         try{
  171.            
  172.             JFileChooser chooser = new JFileChooser(System.getProperty("user.home") + "/Desktop");
  173.             chooser.setMultiSelectionEnabled(true);
  174.             FileNameExtensionFilter filter = new FileNameExtensionFilter(
  175.                 "*.jpg, *.png, *.bmp, *.jpeg", "jpg", "png", "bmp", "jpeg");
  176.             chooser.setFileFilter(filter);
  177.             int returnVal = chooser.showOpenDialog(this);
  178.            
  179.             if(returnVal == JFileChooser.APPROVE_OPTION) {
  180.                 File[] files = chooser.getSelectedFiles();
  181.                 String[] columnNames = {"Imagen", "Descripción"};
  182.                 Object[][] data = new Object[files.length][2];
  183.                 int contador = 0;
  184.                
  185.                 for(File imatge: files){
  186.                     if(accept(imatge)){
  187.                         imgBanknote = new ImageIcon( new ImageIcon(imatge.getAbsolutePath()).getImage().getScaledInstance(150, 120, Image.SCALE_SMOOTH));
  188.                         data[contador][0] = imgBanknote;
  189.                         data[contador][1] = imatge;
  190.                         contador++;
  191.                     }
  192.                 }
  193.                
  194.                 DefaultTableModel model = new DefaultTableModel(data, columnNames){
  195.                     //  Returning the Class of each column will allow different
  196.                     //  renderers to be used based on Class
  197.                     @Override
  198.                     public Class getColumnClass(int column) {
  199.                         return getValueAt(0, column).getClass();
  200.                     }
  201.                     @Override
  202.                     public boolean isCellEditable(int row, int column){
  203.                         return column != 0;
  204.                     }
  205.                    
  206.                 };
  207.                
  208.                 taula.setModel(model);
  209.                 taula.setPreferredScrollableViewportSize(taula.getPreferredSize());
  210.             }
  211.            
  212.         }
  213.         catch(HeadlessException e){
  214.             System.out.println(e);
  215.         }
  216.     }                                          
  217.  
  218.     public boolean accept(File f) {
  219.        
  220.         String extension = getFileExtension(f.getName());
  221.         if (extension != null) {
  222.             if (extension.equals("JPG") ||
  223.                 extension.equals("PNG") ||
  224.                 extension.equals("BMP") ||
  225.                 extension.equals("JPEG")) {
  226.                     return true;
  227.             }
  228.             else {
  229.                 return false;
  230.             }
  231.         }
  232.  
  233.         return false;
  234.     }
  235.    
  236.     private String getFileExtension(String name) {
  237.         try {
  238.             return name.substring(name.lastIndexOf(".") + 1).toUpperCase();
  239.         }
  240.         catch (Exception e) {
  241.             System.out.println(e);
  242.             return "";
  243.         }
  244.     }
  245.    
  246.     private void loadCountries(){
  247.         Country[] countries = countryController.getCountries();
  248.         for(Country country : countries){
  249.             comboCountry.addItem(country.getName());
  250.         }
  251.     }
  252.    
  253.     /**
  254.      * @param args the command line arguments
  255.      */
  256.     public static void main(String args[]) {
  257.         /* Set the Nimbus look and feel */
  258.         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  259.         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  260.          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  261.          */
  262.         try {
  263.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  264.                 if ("Nimbus".equals(info.getName())) {
  265.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  266.                     break;
  267.                 }
  268.             }
  269.         } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
  270.             java.util.logging.Logger.getLogger(AddBankNotes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  271.         }
  272.         //</editor-fold>
  273.        
  274.         //</editor-fold>
  275.  
  276.         /* Create and display the dialog */
  277.         java.awt.EventQueue.invokeLater(() -> {
  278.             AddBankNotes dialog = new AddBankNotes(new javax.swing.JFrame(), true);
  279.             dialog.addWindowListener(new java.awt.event.WindowAdapter() {
  280.                 @Override
  281.                 public void windowClosing(java.awt.event.WindowEvent e) {
  282.                     System.exit(0);
  283.                 }
  284.             });
  285.             dialog.setVisible(true);
  286.         });
  287.     }
  288.  
  289.     // Variables declaration - do not modify                    
  290.     private javax.swing.JButton btnAceptar;
  291.     private javax.swing.JButton btnCancelar;
  292.     private javax.swing.JButton btnInsertar;
  293.     private javax.swing.JComboBox<String> comboCountry;
  294.     private javax.swing.JLabel jLabel1;
  295.     private javax.swing.JLabel jLabel2;
  296.     private javax.swing.JScrollPane jScrollPane1;
  297.     private javax.swing.JTable taula;
  298.     // End of variables declaration                  
  299. }
Add Comment
Please, Sign In to add comment