mnaufaldillah

CurrencyConverter Final Project

Jan 9th, 2021
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.42 KB | None | 0 0
  1. /**
  2.  * Write a description of class CurrencyConverter here.
  3.  *
  4.  * @author (your name)
  5.  * @version (a version number or a date)
  6.  */
  7. public class CurrencyConverter extends javax.swing.JFrame
  8. {
  9.     // Nilai Mata Uang
  10.     double US_Dollar = 1.36;
  11.     double European_Euro = 1.11;
  12.     double Australian_Dollar = 1.75;
  13.     double Canadian_Dollar = 1.72;
  14.     double Hongkong_Dollar = 10.53;
  15.     double Indonesian_Rupiah = 19171.46;
  16.     double Indian_Rupee = 99.57;
  17.     double Japanese_Yen = 141.00;
  18.     double Southkorean_won = 1483.02;
  19.    
  20.     //String mata uang
  21.     String[] currencyUnits = {
  22.         "Units",
  23.         "US Dollar",
  24.         "European Euro",
  25.         "Australian Dollar",
  26.         "Canadian Dollar",
  27.         "Hong Kong Dollar",
  28.         "Indonesian Rupiah",
  29.         "Indian Rupee",
  30.         "Japanese Yen",
  31.         "South Korean Won"
  32.     };
  33.    
  34.     // Deklarasi variable
  35.     private javax.swing.JComboBox<String> firstCountry;
  36.     private javax.swing.JLabel firstCurrencyUnit;
  37.     private javax.swing.JButton jButton1;
  38.     private javax.swing.JButton jButton2;
  39.     private javax.swing.JButton jButton3;
  40.     private javax.swing.JLabel jLabel1;
  41.     private javax.swing.JLabel jLabel2;
  42.     private javax.swing.JLabel jLabel3;
  43.     private javax.swing.JPanel jPanel1;
  44.     private javax.swing.JComboBox<String> secondCountry;
  45.     private javax.swing.JLabel secondCurrencyUnit;
  46.     private javax.swing.JTextField t1;
  47.     private javax.swing.JTextField t2;
  48.    
  49.     public CurrencyConverter()
  50.     {
  51.         initComponents();
  52.     }
  53.    
  54.     @SuppressWarnings("unchecked")
  55.     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  56.     private void initComponents()
  57.     {
  58.         jPanel1 = new javax.swing.JPanel();
  59.         jLabel1 = new javax.swing.JLabel();
  60.         firstCountry = new javax.swing.JComboBox<>();
  61.         secondCountry = new javax.swing.JComboBox<>();
  62.         jLabel2 = new javax.swing.JLabel();
  63.         jLabel3 = new javax.swing.JLabel();
  64.         t1 = new javax.swing.JTextField();
  65.         t2 = new javax.swing.JTextField();
  66.         jButton1 = new javax.swing.JButton();
  67.         jButton2 = new javax.swing.JButton();
  68.         jButton3 = new javax.swing.JButton();
  69.         secondCurrencyUnit = new javax.swing.JLabel();
  70.         firstCurrencyUnit = new javax.swing.JLabel();
  71.        
  72.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  73.  
  74.         jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0), 5));
  75.        
  76.         jLabel1.setFont(new java.awt.Font("Arial", 1, 24)); // NOI18N
  77.         jLabel1.setText("Konverter Mata Uang");
  78.        
  79.         firstCountry.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
  80.         firstCountry.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Choose One...", "USD", "EUR", "AUD", "CAD", "HKD", "IDR", "INR", "JPY", "KRW" }));
  81.         firstCountry.addItemListener(new java.awt.event.ItemListener() {
  82.             public void itemStateChanged(java.awt.event.ItemEvent evt) {
  83.                 firstCountryItemStateChanged(evt);
  84.             }
  85.         });
  86.         firstCountry.addActionListener(new java.awt.event.ActionListener() {
  87.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  88.                 firstCountryActionPerformed(evt);
  89.             }
  90.         });
  91.        
  92.         secondCountry.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
  93.         secondCountry.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Choose One...", "USD", "EUR", "AUD", "CAD", "HKD", "IDR", "INR", "JPY", "KRW" }));
  94.         secondCountry.addItemListener(new java.awt.event.ItemListener() {
  95.             public void itemStateChanged(java.awt.event.ItemEvent evt) {
  96.                 secondCountryItemStateChanged(evt);
  97.             }
  98.         });
  99.        
  100.         jLabel2.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
  101.         jLabel2.setText("Dari Mata Uang");
  102.  
  103.         jLabel3.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
  104.         jLabel3.setText("Ke Mata Uang");
  105.  
  106.         t1.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
  107.  
  108.         t2.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
  109.  
  110.         jButton1.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
  111.         jButton1.setText("Konversi Mata Uang");
  112.         jButton1.addActionListener(new java.awt.event.ActionListener() {
  113.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  114.                 jButton1ActionPerformed(evt);
  115.             }
  116.         });
  117.  
  118.         jButton2.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
  119.         jButton2.setText("Reset");
  120.         jButton2.addActionListener(new java.awt.event.ActionListener() {
  121.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  122.                 jButton2ActionPerformed(evt);
  123.             }
  124.         });
  125.  
  126.         jButton3.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
  127.         jButton3.setText("Keluar");
  128.         jButton3.addActionListener(new java.awt.event.ActionListener() {
  129.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  130.                 jButton3ActionPerformed(evt);
  131.             }
  132.         });
  133.  
  134.         secondCurrencyUnit.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
  135.         secondCurrencyUnit.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
  136.         secondCurrencyUnit.setText("units");
  137.  
  138.         firstCurrencyUnit.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
  139.         firstCurrencyUnit.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
  140.         firstCurrencyUnit.setText("units");
  141.        
  142.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  143.         jPanel1.setLayout(jPanel1Layout);
  144.         jPanel1.setLayout(jPanel1Layout);
  145.         jPanel1Layout.setHorizontalGroup(
  146.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  147.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  148.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  149.                 .addComponent(jLabel1)
  150.                 .addGap(290, 290, 290))
  151.             .addGroup(jPanel1Layout.createSequentialGroup()
  152.                 .addGap(93, 93, 93)
  153.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  154.                     .addComponent(jButton1)
  155.                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  156.                         .addComponent(firstCountry, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  157.                         .addComponent(t1)
  158.                         .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
  159.                         .addComponent(firstCurrencyUnit, javax.swing.GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE)))
  160.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  161.                     .addGroup(jPanel1Layout.createSequentialGroup()
  162.                         .addGap(81, 81, 81)
  163.                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  164.                             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  165.                                 .addComponent(jLabel3)
  166.                                 .addComponent(secondCountry, 0, 272, Short.MAX_VALUE)
  167.                                 .addComponent(t2))
  168.                             .addComponent(secondCurrencyUnit, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE)))
  169.                     .addGroup(jPanel1Layout.createSequentialGroup()
  170.                         .addGap(11, 11, 11)
  171.                         .addComponent(jButton2)
  172.                         .addGap(94, 94, 94)
  173.                         .addComponent(jButton3)))
  174.                 .addContainerGap(114, Short.MAX_VALUE))
  175.         );
  176.         jPanel1Layout.setVerticalGroup(
  177.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  178.             .addGroup(jPanel1Layout.createSequentialGroup()
  179.                 .addContainerGap()
  180.                 .addComponent(jLabel1)
  181.                 .addGap(28, 28, 28)
  182.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  183.                     .addComponent(jLabel2)
  184.                     .addComponent(jLabel3))
  185.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  186.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  187.                     .addComponent(firstCountry, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
  188.                     .addComponent(secondCountry))
  189.                 .addGap(18, 18, 18)
  190.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  191.                     .addComponent(t1, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
  192.                     .addComponent(t2))
  193.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  194.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  195.                     .addGroup(jPanel1Layout.createSequentialGroup()
  196.                         .addComponent(secondCurrencyUnit, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
  197.                         .addGap(23, 23, 23))
  198.                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  199.                         .addComponent(firstCurrencyUnit, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
  200.                         .addGap(18, 18, 18)))
  201.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  202.                     .addComponent(jButton1)
  203.                     .addComponent(jButton2)
  204.                     .addComponent(jButton3))
  205.                 .addContainerGap(57, Short.MAX_VALUE))
  206.         );
  207.        
  208.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  209.         getContentPane().setLayout(layout);
  210.         layout.setHorizontalGroup(
  211.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  212.             .addGroup(layout.createSequentialGroup()
  213.                 .addContainerGap()
  214.                 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  215.                 .addContainerGap())
  216.         );
  217.         layout.setVerticalGroup(
  218.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  219.             .addGroup(layout.createSequentialGroup()
  220.                 .addContainerGap()
  221.                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  222.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  223.         );
  224.        
  225.         pack();
  226.     }
  227.    
  228.     private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)
  229.     {
  230.         System.exit(0);
  231.     }
  232.    
  233.     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)
  234.     {
  235.         firstCountry.setSelectedIndex(0);
  236.         secondCountry.setSelectedIndex(0);
  237.         t1.setText("");
  238.         t2.setText("");
  239.     }
  240.    
  241.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
  242.     {
  243.         double amountToChange=Double.parseDouble(t1.getText());
  244.         double amountChanged=0.0;
  245.         double amountInPounds=0.0;
  246.        
  247.         switch(firstCountry.getSelectedItem().toString())
  248.         {
  249.           case "USD": amountInPounds = amountToChange/US_Dollar;break;
  250.           case "EUR":amountInPounds = amountToChange/European_Euro;break;
  251.           case "AUD":amountInPounds = amountToChange/Australian_Dollar;break;
  252.           case "CAD":amountInPounds = amountToChange/Canadian_Dollar;break;
  253.           case "HKD":amountInPounds = amountToChange/Hongkong_Dollar;break;
  254.           case "IDR":amountInPounds = amountToChange/Indonesian_Rupiah;break;
  255.           case "INR":amountInPounds = amountToChange/Indian_Rupee;break;
  256.           case "JPY":amountInPounds = amountToChange/Japanese_Yen;break;
  257.           case "KRW":amountInPounds = amountToChange/Southkorean_won;break;
  258.           default:amountInPounds = 0.0;  
  259.         }
  260.        
  261.         //Jumlah diubah dalam UK Poundsterling
  262.        
  263.         switch(secondCountry.getSelectedItem().toString())
  264.         {
  265.             case "USD":amountChanged = amountInPounds * US_Dollar;break;
  266.             case "EUR":amountChanged = amountInPounds * European_Euro;break;
  267.             case "AUD":amountChanged = amountInPounds * Australian_Dollar;break;
  268.             case "CAD":amountChanged = amountInPounds * Canadian_Dollar;break;
  269.             case "HKD":amountChanged = amountInPounds * Hongkong_Dollar;break;
  270.             case "IDR":amountChanged = amountInPounds * Indonesian_Rupiah;break;
  271.             case "INR":amountChanged = amountInPounds * Indian_Rupee;break;
  272.             case "JPY":amountChanged = amountInPounds * Japanese_Yen;break;
  273.             case "KRW":amountChanged = amountInPounds * Southkorean_won;break;
  274.             default:amountChanged = amountInPounds * 0.0;
  275.         }
  276.        
  277.         String value = String.format("%.2f",amountChanged);
  278.          
  279.         t2.setText(value);
  280.     }
  281.    
  282.     private void firstCountryActionPerformed(java.awt.event.ActionEvent evt)
  283.     {
  284.        
  285.     }
  286.    
  287.     private void firstCountryItemStateChanged(java.awt.event.ItemEvent evt)
  288.     {
  289.         firstCurrencyUnit.setText(currencyUnits[firstCountry.getSelectedIndex()]);
  290.     }
  291.    
  292.     private void secondCountryItemStateChanged(java.awt.event.ItemEvent evt)
  293.     {
  294.         secondCurrencyUnit.setText(currencyUnits[secondCountry.getSelectedIndex()]);
  295.     }
  296.    
  297.     public static void main(String args[])
  298.     {
  299.         try
  300.         {
  301.             for(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
  302.             {
  303.                 if("Nimbus".equals(info.getName()))
  304.                 {
  305.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  306.                     break;
  307.                 }
  308.             }
  309.         }
  310.         catch(ClassNotFoundException ex)
  311.         {
  312.             java.util.logging.Logger.getLogger(CurrencyConverter.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  313.         }
  314.         catch(InstantiationException ex)
  315.         {
  316.             java.util.logging.Logger.getLogger(CurrencyConverter.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  317.         }
  318.         catch(IllegalAccessException ex)
  319.         {
  320.             java.util.logging.Logger.getLogger(CurrencyConverter.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  321.         }
  322.         catch(javax.swing.UnsupportedLookAndFeelException ex)
  323.         {
  324.             java.util.logging.Logger.getLogger(CurrencyConverter.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  325.         }
  326.        
  327.         java.awt.EventQueue.invokeLater(new Runnable() {
  328.             public void run() {
  329.                 new CurrencyConverter().setVisible(true);
  330.             }
  331.         });
  332.     }
  333. }
Advertisement
Add Comment
Please, Sign In to add comment