Java tutorial
package UI; import feedForward.FFTrain; import feedForward.FFData; import feedForward.FForecast; //import main.FFNeuralNetwork; import java.awt.CardLayout; import java.awt.Color; import java.awt.Image; import java.awt.Toolkit; //import sun.awt.image.ToolkitImage; import java.awt.Graphics; import javax.swing.JPanel; import java.awt.Component; import java.awt.Cursor; import java.awt.Font; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.image.ImageObserver; import java.awt.image.ImageProducer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.EOFException; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.nio.file.Files; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.EventObject; import java.util.List; import java.util.Random; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; import javax.imageio.ImageIO; import javax.swing.BorderFactory; import javax.swing.DefaultCellEditor; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFormattedTextField; import javax.swing.JOptionPane; import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JSpinner; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import javax.swing.UIManager; import javax.swing.border.LineBorder; import javax.swing.event.CellEditorListener; import javax.swing.plaf.ColorUIResource; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellEditor; import javax.swing.text.Caret; import javax.swing.text.DefaultCaret; import javax.swing.text.JTextComponent; import neuralNetwork.Utility; import org.apache.http.StatusLine; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import recurrent.RForecast; import recurrent.RecurrentData; import recurrent.RecurrentTrain; import restApi.ApiCaller; /* * 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 sanju singh */ public class MainUI extends javax.swing.JFrame { /** * Creates new form MainUI * * */ private static final int DATE_COL = 0; private static final int INPUT_COL = 1; private static final int EXPECTED_OUTPUT_COL = 2; private static final int ACTUAL_OUTPUT_COL = 3; public MainUI() { try { this.iconImage = ImageIO.read(getClass().getResource("/resources/icon.png")); setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH); initComponents(); } catch (IOException ex) { Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } } class MyCustomFilter extends javax.swing.filechooser.FileFilter { @Override public boolean accept(File file) { // Allow only directories, or files with ".txt" extension return file.isDirectory() || file.getAbsolutePath().endsWith(".csv"); } @Override public String getDescription() { // This description will be displayed in the dialog, // hard-coded = ugly, should be done via I18N return "Text documents (*.csv)"; } } class MyfnnListener implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { if ("progress" == evt.getPropertyName()) { int progress = (Integer) evt.getNewValue(); jProgressBar1.setValue(progress); // taskOutput.append(String.format( // "Completed %d%% of task.\n", task.getProgress())); } } } class MyRnnListener implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { if ("progress" == evt.getPropertyName()) { int progress = (Integer) evt.getNewValue(); rProgressBar.setValue(progress); } } } static MyOwnFocusTraversalPolicy newPolicy; private int algo = 1; static Image iconImage; public static void setUIFont(javax.swing.plaf.FontUIResource f) { java.util.Enumeration keys = UIManager.getDefaults().keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); Object value = UIManager.get(key); if (value != null && value instanceof javax.swing.plaf.FontUIResource) UIManager.put(key, f); } } public void showNetworkError() { statusLabel.setForeground(new java.awt.Color(204, 0, 0)); statusLabel.setText("Error: Network Connection Problem"); } public void showTodayRate(String[] rate) { todayText1.setText(rate[0]); todayText2.setText(rate[1]); todayText3.setText(rate[2]); todayText4.setText(rate[3]); statusLabel.setText(" "); } public void calcForecast(String[] rate) { try { Double output; String fileName = "Data/testing.csv"; updateHistFile(rate, fileName); for (int i = 0; i < 4; i++) { if (i == 0) { output = tmrwForecast(fileName, i); tmrwText1.setText(String.valueOf(Utility.formatDecimal(output))); } if (i == 1) { output = tmrwForecast(fileName, i); tmrwText2.setText(String.valueOf(Utility.formatDecimal(output))); } if (i == 2) { output = tmrwForecast(fileName, i); tmrwText3.setText(String.valueOf(Utility.formatDecimal(output))); } if (i == 3) { output = tmrwForecast(fileName, i); output = output / 100; tmrwText4.setText(String.valueOf(Utility.formatDecimal(output))); } } } catch (Exception ex) { ex.printStackTrace(); } } public void updateHistFile(String[] rate, String fileName) throws FileNotFoundException, IOException { String todayAsString = new SimpleDateFormat("dd/MM/yyyy").format(new Date()); Double yenRate = Double.parseDouble(rate[3]); yenRate = yenRate * 100; File histDataFile = new File(fileName); BufferedReader br = new BufferedReader(new FileReader(histDataFile)); ArrayList<String> histData = new ArrayList<>(); histData.add(todayAsString + "," + rate[0] + "," + rate[1] + "," + rate[2] + "," + yenRate); String line; line = br.readLine(); if (!line.split(",")[0].equals(todayAsString)) { histData.add(line); } while ((line = br.readLine()) != null) { histData.add(line); } br.close(); try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fileName, false)))) { for (int i = 0; i < histData.size(); i++) { out.println(histData.get(i)); } } catch (IOException e) { statusLabel.setForeground(new java.awt.Color(204, 0, 0)); statusLabel.setText("Error writing in history data file"); System.err.println(e); } } public Double tmrwForecast(String fileName, int curr) { BufferedReader br = null; List<Double> inputValues = new ArrayList<Double>(); String currency = ""; int currencyCol; int inputCnt, hiddenCnt1, hiddenCnt2, outputCnt; Double output = null; String line; String[] cols; File testDataFile = new File(fileName); currencyCol = curr + 1; currency = Utility.getCurrency(currencyCol); File file = new File("RNNresource/" + currency + ".csv"); FileReader fr; try { br = new BufferedReader(new FileReader(file)); cols = br.readLine().split(","); inputCnt = Integer.parseInt(cols[0]); hiddenCnt1 = Integer.parseInt(cols[1]); hiddenCnt2 = Integer.parseInt(cols[2]); outputCnt = Integer.parseInt(cols[3]); br.close(); try { br = new BufferedReader(new FileReader(testDataFile)); for (int i = 0; i < inputCnt; i++) { if ((line = br.readLine()) != null) { // use comma as separator cols = line.split(","); inputValues.add(Utility.normalize(Double.parseDouble(cols[currencyCol]), currencyCol)); } else { break; } } Collections.reverse(inputValues); RecurrentData data = new RecurrentData(); data.setInputNeurons(inputCnt); data.setHiddenNeurons1(hiddenCnt1); data.setHiddenNeurons2(hiddenCnt2); data.setOutputNeurons(outputCnt); data.setCurrencyCol(currencyCol); data.setInputValues(inputValues); RForecast task = new RForecast(data); output = task.forecast(); } catch (FileNotFoundException ex) { statusLabel.setForeground(new java.awt.Color(204, 0, 0)); statusLabel.setText("Error: History Data File Not Found"); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (NumberFormatException ex) { statusLabel.setForeground(new java.awt.Color(204, 0, 0)); statusLabel.setText("Error: History Data File Format Is Not Correct"); // DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { statusLabel.setForeground(new java.awt.Color(204, 0, 0)); statusLabel.setText("Error: Problem Reading History Data file"); // DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } finally { br.close(); } } catch (FileNotFoundException ex) { statusLabel.setForeground(new java.awt.Color(204, 0, 0)); statusLabel.setText("Error: Neural Network Is Not Trained"); //DialogBox.setVisible(true); //Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { statusLabel.setForeground(new java.awt.Color(204, 0, 0)); statusLabel.setText("Error: Problem Reading Weights File"); //DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } return output; } class MyFrame extends javax.swing.JFrame { public MyFrame() { setUIFont(new javax.swing.plaf.FontUIResource("Segoe UI", Font.PLAIN, 13)); } } /** * 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() { fileChooser = new javax.swing.JFileChooser(); jFrame1 = new MyFrame(); jPanel5 = new javax.swing.JPanel(); submitBtn = new javax.swing.JButton(); filePath = new java.awt.TextField(); jButton4 = new javax.swing.JButton(); testLabel = new javax.swing.JLabel(); fCurrencyComboBox = new javax.swing.JComboBox<>(); jLabel17 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jPanel9 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); hiddenNeurons = new javax.swing.JSpinner(); jLabel5 = new javax.swing.JLabel(); fOutputNeurons = new javax.swing.JSpinner(); jLabel23 = new javax.swing.JLabel(); jLabel24 = new javax.swing.JLabel(); jLabel25 = new javax.swing.JLabel(); inputNeurons = new javax.swing.JSpinner(); jProgressBar1 = new JProgressBar(0, 100); finishBtn = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); epochInput = new javax.swing.JSpinner(); jLabel31 = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); jFrame2 = new MyFrame(); jPanel7 = new javax.swing.JPanel(); rSubmitBtn = new javax.swing.JButton(); rFilePath = new java.awt.TextField(); jButton6 = new javax.swing.JButton(); testLabel1 = new javax.swing.JLabel(); rCurrencyComboBox = new javax.swing.JComboBox<>(); jLabel26 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jPanel11 = new javax.swing.JPanel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); rHiddenNeurons1 = new javax.swing.JSpinner(); jLabel12 = new javax.swing.JLabel(); jLabel27 = new javax.swing.JLabel(); jLabel28 = new javax.swing.JLabel(); jLabel29 = new javax.swing.JLabel(); rInputNeurons = new javax.swing.JSpinner(); rOutputNeurons = new javax.swing.JSpinner(); rHiddenNeurons2 = new javax.swing.JSpinner(); rProgressBar = new javax.swing.JProgressBar(); rFinishBtn = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel(); rSpinner = new javax.swing.JSpinner(); jLabel30 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); buttonGroup1 = new javax.swing.ButtonGroup(); jScrollPane2 = new javax.swing.JScrollPane(); jPanel1 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; UIManager.put("TabbedPane.contentAreaColor ", ColorUIResource.BLACK); UIManager.put("TabbedPane.selected", ColorUIResource.BLACK); UIManager.put("TabbedPane.unselectedBackground", ColorUIResource.BLACK); // UIManager.put("TabbedPane.background",ColorUIResource.BLUE); UIManager.put("TabbedPane.shadow", ColorUIResource.BLACK); jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel3 = new JPanel() { public void paintComponent(Graphics g) { Image img = Toolkit.getDefaultToolkit() .getImage(MainUI.class.getResource("/resources/NNImage.jpg")); g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this); } }; ; setUIFont(new javax.swing.plaf.FontUIResource("Segoe UI", Font.PLAIN, 14)); jPanel14 = new javax.swing.JPanel(); jTextArea1 = jTextArea1 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel4 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea4 = new javax.swing.JTextArea(); jPanel6 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea5 = new javax.swing.JTextArea(); jPanel15 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea3 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel16 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea6 = new javax.swing.JTextArea(); jPanel17 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea7 = new javax.swing.JTextArea(); jPanel18 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea8 = new javax.swing.JTextArea(); jPanel19 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea9 = new javax.swing.JTextArea(); jPanel20 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea10 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel21 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; todayText1 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel22 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; todayText2 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel23 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; todayText3 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel24 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; todayText4 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel25 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jTextArea15 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel26 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; tmrwText1 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel27 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; tmrwText2 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel28 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; tmrwText3 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel29 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; tmrwText4 = new JTextArea() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; statusLabel = new javax.swing.JLabel(); jPanel8 = new JPanel() { public void paintComponent(Graphics g) { Image img = Toolkit.getDefaultToolkit() .getImage(MainUI.class.getResource("/resources/NNImage.jpg")); g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this); } }; ; jPanel10 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jLabel8 = new javax.swing.JLabel(); CurrencyComboBox = new JComboBox() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jLabel7 = new javax.swing.JLabel(); testingDataPath = new JTextField() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; testingBrowseBtn = new javax.swing.JToggleButton(); forecastBtn = new javax.swing.JButton(); jScrollPane1 = new JScrollPane() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; Caret caret = new DefaultCaret() { public void focusGained(FocusEvent e) { setVisible(true); setSelectionVisible(true); } }; caret.setBlinkRate(UIManager.getInt("TextField.caretBlinkRate")); JTextField textField = new JTextField(); textField.setEditable(false); textField.setCaret(caret); //textField.setBorder(new LineBorder(Color.BLACK)); // textField.setBackground(Color.BLUE); DefaultCellEditor dce = new DefaultCellEditor(textField); forecastTable = new JTable(); jPanel12 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; jPanel13 = new javax.swing.JPanel(); jRadioButton2 = new javax.swing.JRadioButton(); jRadioButton1 = new javax.swing.JRadioButton(); jPanel2 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; doneButton1 = new javax.swing.JButton(); jPanel30 = new JPanel() { protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; ; graphBtn = new javax.swing.JButton(); jButton1 = new javax.swing.JButton(); fileChooser.setFileFilter(new MyCustomFilter()); jFrame1.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); jFrame1.setTitle("Train Feed Forward Neural Network"); jFrame1.setBackground(new java.awt.Color(102, 102, 102)); jFrame1.setFocusTraversalPolicyProvider(true); jFrame1.setIconImage(iconImage); jFrame1.setResizable(false); jFrame1.setSize(new java.awt.Dimension(580, 420)); jPanel5.setBackground(new java.awt.Color(38, 50, 56)); jPanel5.setAlignmentX(0.0F); jPanel5.setAlignmentY(0.0F); jPanel5.setPreferredSize(new java.awt.Dimension(480, 480)); submitBtn.setText("Start"); submitBtn.setOpaque(false); submitBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { submitBtnActionPerformed(evt); } }); filePath.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { filePathFocusGained(evt); } }); filePath.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { filePathActionPerformed(evt); } }); jButton4.setText("Browse"); jButton4.setOpaque(false); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); fCurrencyComboBox.setBackground(new java.awt.Color(56, 56, 56, 0)); fCurrencyComboBox.setModel(new javax.swing.DefaultComboBoxModel<>( new String[] { "US Dollar", "British Pound", "Euro", "Yen" })); fCurrencyComboBox.setOpaque(false); fCurrencyComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fCurrencyComboBoxActionPerformed(evt); } }); jLabel17.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel17.setForeground(new java.awt.Color(255, 255, 255)); jLabel17.setLabelFor(fCurrencyComboBox); jLabel17.setText("Select Currency :"); jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel6.setForeground(new java.awt.Color(240, 240, 240)); jLabel6.setText("Training Data Path:"); jPanel9.setBackground(new java.awt.Color(51, 51, 51)); jPanel9.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Enter Neurons", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 0, 12), new java.awt.Color(240, 240, 240))); // NOI18N jPanel9.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N jPanel9.setOpaque(false); jLabel3.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel3.setForeground(new java.awt.Color(240, 240, 240)); jLabel3.setLabelFor(inputNeurons); jLabel3.setText("Input Layer:"); jLabel3.setToolTipText(""); jLabel3.setAlignmentY(0.0F); jLabel3.setMaximumSize(new java.awt.Dimension(63, 14)); jLabel3.setMinimumSize(new java.awt.Dimension(63, 14)); jLabel3.setPreferredSize(new java.awt.Dimension(63, 14)); jLabel4.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel4.setForeground(new java.awt.Color(240, 240, 240)); jLabel4.setText("Hidden Layer:"); hiddenNeurons.setModel(new javax.swing.SpinnerNumberModel(1, 1, 500, 1)); JFormattedTextField format2 = ((JSpinner.DefaultEditor) hiddenNeurons.getEditor()).getTextField(); format2.addFocusListener(fcsListener); hiddenNeurons.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); hiddenNeurons.setOpaque(false); jLabel5.setForeground(new java.awt.Color(240, 240, 240)); jLabel5.setText("Output Layer:"); fOutputNeurons.setModel(new javax.swing.SpinnerNumberModel(1, null, null, 1)); JFormattedTextField format3 = ((JSpinner.DefaultEditor) fOutputNeurons.getEditor()).getTextField(); format3.addFocusListener(fcsListener); fOutputNeurons.setEnabled(false); fOutputNeurons.setOpaque(false); jLabel23.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel23.setForeground(new java.awt.Color(255, 153, 102)); jLabel23.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel23.setToolTipText( "<html>Enter number of neurons in input layer<br>equal to number of input.<br>Range 1 - 500</html>"); jLabel23.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jLabel24.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel24.setForeground(new java.awt.Color(255, 153, 102)); jLabel24.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel24.setToolTipText( "<html>Enter number of neurons in<br> hidden layer of neural network.<br>Range 1 - 500</html>"); jLabel25.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel25.setForeground(new java.awt.Color(255, 153, 102)); jLabel25.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel25.setToolTipText( "<html>Number of neurons in output layer<br> of NN, equal to number of output.</html>"); inputNeurons.setModel(new javax.swing.SpinnerNumberModel(1, 1, 500, 1)); JFormattedTextField format1 = ((JSpinner.DefaultEditor) inputNeurons.getEditor()).getTextField(); format1.addFocusListener(fcsListener); inputNeurons.setToolTipText(""); inputNeurons.setOpaque(false); javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9); jPanel9.setLayout(jPanel9Layout); jPanel9Layout.setHorizontalGroup(jPanel9Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel9Layout.createSequentialGroup().addGap(36, 36, 36) .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel9Layout.createSequentialGroup() .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel23)) .addComponent(inputNeurons, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(48, 48, 48) .addGroup( jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel9Layout.createSequentialGroup().addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel24)) .addComponent(hiddenNeurons)) .addGap(48, 48, 48) .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(fOutputNeurons, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel9Layout.createSequentialGroup().addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel25))) .addGap(36, 36, 36))); jPanel9Layout.setVerticalGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel9Layout.createSequentialGroup().addGap(22, 22, 22).addGroup(jPanel9Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel24, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel9Layout.createSequentialGroup().addGroup(jPanel9Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false) .addComponent(hiddenNeurons).addComponent(fOutputNeurons)) .addGap(0, 0, Short.MAX_VALUE)) .addComponent(inputNeurons)) .addContainerGap())); jProgressBar1.setForeground(new java.awt.Color(51, 128, 244)); jProgressBar1.setStringPainted(true); finishBtn.setText("Finish"); finishBtn.setEnabled(false); finishBtn.setOpaque(false); finishBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { finishBtnActionPerformed(evt); } }); jLabel1.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 255, 255)); jLabel1.setLabelFor(epochInput); jLabel1.setText("Number of Epoch"); epochInput.setModel(new javax.swing.SpinnerNumberModel(500, 1, 50000, 500)); JFormattedTextField format0 = ((JSpinner.DefaultEditor) epochInput.getEditor()).getTextField(); format0.addFocusListener(fcsListener); epochInput.setOpaque(false); jLabel31.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel31.setForeground(new java.awt.Color(255, 153, 102)); jLabel31.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel31.setToolTipText( "<html>Number of Iteration to train over training data.<br>Range 1 - 50,000</html>"); jLabel31.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jLabel14.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel14.setForeground(new java.awt.Color(255, 255, 255)); jLabel14.setText(" :"); javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup().addGap(224, 224, 224) .addComponent(testLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(49, 49, 49)) .addGroup(jPanel5Layout.createSequentialGroup().addGap(63, 63, 63) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel5Layout.createSequentialGroup() .addComponent(submitBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent( finishBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jProgressBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent( jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout .createSequentialGroup().addGroup(jPanel5Layout .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel5Layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel31).addGap(82, 82, 82) .addComponent(jLabel14)) .addComponent(jLabel17, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel5Layout .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(fCurrencyComboBox, 0, 137, Short.MAX_VALUE) .addComponent(epochInput))) .addGroup(jPanel5Layout.createSequentialGroup().addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addComponent(jLabel6).addGap(0, 0, Short.MAX_VALUE)) .addComponent(filePath, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addContainerGap(43, Short.MAX_VALUE))); jPanel5Layout.setVerticalGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup().addGap(39, 39, 39) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel17).addComponent(fCurrencyComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(epochInput, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel14, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(jPanel5Layout.createSequentialGroup() .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(3, 3, 3))) .addComponent(jLabel31, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jButton4).addGroup( jPanel5Layout.createSequentialGroup().addComponent(jLabel6).addGap(2, 2, 2) .addComponent(filePath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(29, 29, 29) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(finishBtn).addComponent(submitBtn)) .addGap(18, 18, 18) .addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(56, 56, 56).addComponent(testLabel) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); javax.swing.GroupLayout jFrame1Layout = new javax.swing.GroupLayout(jFrame1.getContentPane()); jFrame1.getContentPane().setLayout(jFrame1Layout); jFrame1Layout.setHorizontalGroup(jFrame1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 580, Short.MAX_VALUE) .addGroup(jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, 580, Short.MAX_VALUE))); jFrame1Layout.setVerticalGroup(jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 425, Short.MAX_VALUE) .addGroup(jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, 425, Short.MAX_VALUE))); jFrame1.setLocationRelativeTo(null); jFrame2.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); jFrame2.setTitle("Train Recurrent Neural Network"); jFrame2.setBackground(new java.awt.Color(102, 102, 102)); jFrame2.setIconImage(iconImage); jFrame2.setResizable(false); jFrame2.setSize(new java.awt.Dimension(601, 460)); jPanel7.setBackground(new java.awt.Color(38, 50, 56)); jPanel7.setAlignmentX(0.0F); jPanel7.setAlignmentY(0.0F); jPanel7.setFocusCycleRoot(true); jPanel7.setFocusTraversalPolicy(newPolicy); jPanel7.setPreferredSize(new java.awt.Dimension(590, 460)); rSubmitBtn.setText("Start"); rSubmitBtn.setOpaque(false); rSubmitBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rSubmitBtnActionPerformed(evt); } }); rFilePath.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { rFilePathFocusGained(evt); } }); rFilePath.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rFilePathActionPerformed(evt); } }); jButton6.setText("Browse"); jButton6.setOpaque(false); jButton6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton6ActionPerformed(evt); } }); rCurrencyComboBox.setBackground(new java.awt.Color(56, 56, 56, 0)); rCurrencyComboBox.setModel(new javax.swing.DefaultComboBoxModel<>( new String[] { "US Dollar", "British Pound", "Euro", "Yen" })); rCurrencyComboBox.setOpaque(false); rCurrencyComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rCurrencyComboBoxActionPerformed(evt); } }); jLabel26.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel26.setForeground(new java.awt.Color(255, 255, 255)); jLabel26.setText("Select Currency :"); jLabel9.setForeground(new java.awt.Color(240, 240, 240)); jLabel9.setText("Training Data Path:"); jPanel11.setBackground(new java.awt.Color(51, 51, 51)); jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Enter Neurons", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 0, 12), new java.awt.Color(255, 255, 255))); // NOI18N jPanel11.setOpaque(false); jLabel10.setForeground(new java.awt.Color(240, 240, 240)); jLabel10.setText("Input Layer:"); jLabel10.setToolTipText(""); jLabel10.setAlignmentY(0.0F); jLabel10.setMaximumSize(new java.awt.Dimension(63, 14)); jLabel10.setMinimumSize(new java.awt.Dimension(63, 14)); jLabel10.setPreferredSize(new java.awt.Dimension(63, 14)); jLabel11.setForeground(new java.awt.Color(240, 240, 240)); jLabel11.setText("Hidden Layer:"); rHiddenNeurons1.setModel(new javax.swing.SpinnerNumberModel(1, 1, 500, 1)); JFormattedTextField format5 = ((JSpinner.DefaultEditor) rHiddenNeurons1.getEditor()).getTextField(); format5.addFocusListener(fcsListener); rHiddenNeurons1.setNextFocusableComponent(rHiddenNeurons2); rHiddenNeurons1.setOpaque(false); jLabel12.setForeground(new java.awt.Color(240, 240, 240)); jLabel12.setText("Output Layer:"); jLabel27.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel27.setForeground(new java.awt.Color(255, 153, 102)); jLabel27.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel27.setToolTipText( "<html>Enter number of neurons in input layer<br>equal to number of input.<br>Range 1 - 500</html>"); jLabel27.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jLabel28.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel28.setForeground(new java.awt.Color(255, 153, 102)); jLabel28.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel28.setToolTipText( "<html>Enter number of neurons in<br> hidden layer of neural network.<br>Range 1 - 500</html>"); jLabel29.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel29.setForeground(new java.awt.Color(255, 153, 102)); jLabel29.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel29.setToolTipText( "<html>Number of neurons in output layer<br> of NN, equal to number of output.</html>"); rInputNeurons.setModel(new javax.swing.SpinnerNumberModel(1, 1, 500, 1)); JFormattedTextField format4 = ((JSpinner.DefaultEditor) rInputNeurons.getEditor()).getTextField(); format4.addFocusListener(fcsListener); rInputNeurons.setNextFocusableComponent(rHiddenNeurons1); rInputNeurons.setOpaque(false); rOutputNeurons.setModel(new javax.swing.SpinnerNumberModel(1, null, null, 1)); JFormattedTextField format7 = ((JSpinner.DefaultEditor) rOutputNeurons.getEditor()).getTextField(); format7.addFocusListener(fcsListener); rOutputNeurons.setEnabled(false); rOutputNeurons.setNextFocusableComponent(rFilePath); rOutputNeurons.setOpaque(false); rHiddenNeurons2.setModel(new javax.swing.SpinnerNumberModel(1, 1, 500, 1)); JFormattedTextField format6 = ((JSpinner.DefaultEditor) rHiddenNeurons2.getEditor()).getTextField(); format6.addFocusListener(fcsListener); rHiddenNeurons2.setNextFocusableComponent(rOutputNeurons); rHiddenNeurons2.setOpaque(false); javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11); jPanel11.setLayout(jPanel11Layout); jPanel11Layout.setHorizontalGroup(jPanel11Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel11Layout.createSequentialGroup().addGap(34, 34, 34) .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel11Layout.createSequentialGroup() .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel27)) .addComponent(rInputNeurons, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(52, 52, 52) .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel11Layout.createSequentialGroup().addComponent(jLabel11) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel28)) .addComponent(rHiddenNeurons2, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(rHiddenNeurons1, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(52, 52, 52) .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel11Layout.createSequentialGroup().addComponent(jLabel12) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel29)) .addComponent(rOutputNeurons, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(38, 38, 38))); jPanel11Layout.setVerticalGroup(jPanel11Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel11Layout.createSequentialGroup().addGap(22, 22, 22).addGroup(jPanel11Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel27, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel28, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel29, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup( jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel11Layout.createSequentialGroup().addGroup(jPanel11Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(rHiddenNeurons1).addComponent(rOutputNeurons)) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(rHiddenNeurons2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(28, 28, 28)) .addGroup(jPanel11Layout.createSequentialGroup() .addComponent(rInputNeurons, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))); rProgressBar.setForeground(new java.awt.Color(51, 128, 244)); rProgressBar.setStringPainted(true); rFinishBtn.setText("Finish"); rFinishBtn.setEnabled(false); rFinishBtn.setOpaque(false); rFinishBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rFinishBtnActionPerformed(evt); } }); jLabel2.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel2.setForeground(new java.awt.Color(255, 255, 255)); jLabel2.setLabelFor(rSpinner); jLabel2.setText("Number of Epoch"); rSpinner.setModel(new javax.swing.SpinnerNumberModel(500, 1, 50000, 500)); JFormattedTextField format8 = ((JSpinner.DefaultEditor) rSpinner.getEditor()).getTextField(); format8.addFocusListener(fcsListener); rSpinner.setOpaque(false); jLabel30.setFont(new java.awt.Font("Kartika", 1, 11)); // NOI18N jLabel30.setForeground(new java.awt.Color(255, 153, 102)); jLabel30.setIcon( new javax.swing.ImageIcon(getClass().getResource("/resources/ic_info_outline_white_18dp_1x.png"))); // NOI18N jLabel30.setToolTipText( "<html>Number of Iteration to train over training data.<br>Range 1 - 50,000</html>"); jLabel30.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jLabel13.setFont(new java.awt.Font("Segoe UI", 0, 13)); // NOI18N jLabel13.setForeground(new java.awt.Color(255, 255, 255)); jLabel13.setText(" :"); javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); jPanel7.setLayout(jPanel7Layout); jPanel7Layout.setHorizontalGroup( jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel7Layout .createSequentialGroup().addGap(58, 58, 58).addGroup(jPanel7Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( jPanel7Layout.createSequentialGroup().addGap(224, 224, 224) .addComponent(testLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(210, 210, 210)) .addGroup(jPanel7Layout.createSequentialGroup().addComponent(jLabel9).addGap(0, 0, Short.MAX_VALUE)) .addGroup(jPanel7Layout.createSequentialGroup().addGroup(jPanel7Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel7Layout.createSequentialGroup().addComponent(jLabel26) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(jPanel7Layout.createSequentialGroup().addComponent(jLabel2) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel30).addGap(88, 88, 88) .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(111, 111, 111))) .addGroup(jPanel7Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(rCurrencyComboBox, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(rSpinner, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout .createSequentialGroup().addGap(0, 0, Short.MAX_VALUE) .addComponent(rSubmitBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(rFinishBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup() .addComponent(rFilePath, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rProgressBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(70, 70, 70))); jPanel7Layout.setVerticalGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup().addGap(39, 39, 39) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel26).addComponent(rCurrencyComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup().addGroup(jPanel7Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel7Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(rSpinner).addComponent(jLabel13)) .addComponent(jLabel2)).addGap(17, 17, 17) .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18).addComponent(jLabel9)) .addComponent(jLabel30, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton6).addComponent(rFilePath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(29, 29, 29) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(rSubmitBtn) .addComponent(rFinishBtn, javax.swing.GroupLayout.Alignment.TRAILING)) .addGap(24, 24, 24) .addComponent(rProgressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(testLabel1).addContainerGap(49, Short.MAX_VALUE))); javax.swing.GroupLayout jFrame2Layout = new javax.swing.GroupLayout(jFrame2.getContentPane()); jFrame2.getContentPane().setLayout(jFrame2Layout); jFrame2Layout .setHorizontalGroup(jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 601, Short.MAX_VALUE) .addGroup(jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jFrame2Layout.createSequentialGroup() .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, 601, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)))); jFrame2Layout.setVerticalGroup(jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 460, Short.MAX_VALUE) .addGroup(jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jFrame2Layout.createSequentialGroup() .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)))); Vector<Component> order = new Vector<Component>(10); order.add(rCurrencyComboBox); order.add(format8); order.add(format4); order.add(format5); order.add(format6); order.add(rFilePath); order.add(jButton6); order.add(rSubmitBtn); newPolicy = new MyOwnFocusTraversalPolicy(order); jPanel7.setFocusTraversalPolicy(newPolicy); jFrame2.setLocationRelativeTo(null); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Exchange Rate Forecast"); setIconImage(iconImage); jPanel1.setOpaque(false); jPanel1.setPreferredSize(new java.awt.Dimension(1360, 610)); jTabbedPane1.setBackground(new java.awt.Color(204, 204, 204)); jTabbedPane1.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT); jTabbedPane1.setAlignmentX(0.0F); jTabbedPane1.setAlignmentY(0.0F); jTabbedPane1.setDebugGraphicsOptions(javax.swing.DebugGraphics.NONE_OPTION); jTabbedPane1.setOpaque(true); jPanel3.setBackground(new java.awt.Color(255, 204, 0)); jPanel3.setForeground(new java.awt.Color(255, 255, 255)); jPanel14.setBackground(new java.awt.Color(56, 56, 56, 30)); jPanel14.setForeground(new java.awt.Color(255, 255, 255)); jPanel14.setOpaque(false); jTextArea1.setEditable(false); jTextArea1.setBackground(new java.awt.Color(38, 50, 56, 220)); jTextArea1.setColumns(20); jTextArea1.setFont(new java.awt.Font("Segoe UI Semilight", 0, 28)); // NOI18N jTextArea1.setForeground(new java.awt.Color(255, 255, 255)); jTextArea1.setRows(5); jTextArea1.setText("Forecasting Foreign Exchange Rate Using Neural Network"); jTextArea1.setAlignmentX(2.0F); jTextArea1.setAlignmentY(2.0F); jTextArea1.setAutoscrolls(false); jTextArea1.setCaretColor(new java.awt.Color(204, 255, 102)); jTextArea1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jTextArea1.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea1.setEnabled(false); jTextArea1.setFocusable(false); jTextArea1.setMargin(new java.awt.Insets(10, 10, 10, 10)); jTextArea1.setOpaque(false); jTextArea1.setRequestFocusEnabled(false); jTextArea1.setSelectedTextColor(new java.awt.Color(255, 0, 0)); jTextArea1.setSelectionColor(new java.awt.Color(255, 51, 51)); jTextArea1.setSelectionEnd(0); jTextArea1.setSelectionStart(0); jTextArea1.setVerifyInputWhenFocusTarget(false); jPanel4.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel4.setForeground(new java.awt.Color(255, 255, 255)); jPanel4.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jPanel4.setInheritsPopupMenu(true); jPanel4.setOpaque(false); jPanel4.setPreferredSize(new java.awt.Dimension(400, 58)); jPanel4.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(java.awt.event.MouseEvent evt) { jPanel4MouseExited(evt); } public void mouseClicked(java.awt.event.MouseEvent evt) { jPanel4MouseClicked(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { jPanel4MouseEntered(evt); } }); jTextArea4.setEditable(false); jTextArea4.setBackground(new java.awt.Color(255, 255, 255, 180)); jTextArea4.setColumns(20); jTextArea4.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N jTextArea4.setForeground(new java.awt.Color(255, 255, 255)); jTextArea4.setRows(5); jTextArea4.setText("Feed Forward Neural Network"); jTextArea4.setAlignmentX(2.0F); jTextArea4.setAlignmentY(2.0F); jTextArea4.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jTextArea4.setDebugGraphicsOptions(javax.swing.DebugGraphics.NONE_OPTION); jTextArea4.setDisabledTextColor(new java.awt.Color(51, 51, 51)); jTextArea4.setEnabled(false); jTextArea4.setFocusable(false); jTextArea4.setOpaque(false); jTextArea4.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(java.awt.event.MouseEvent evt) { jTextArea4MouseExited(evt); } public void mouseClicked(java.awt.event.MouseEvent evt) { jTextArea4MouseClicked(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { jTextArea4MouseEntered(evt); } }); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout .setHorizontalGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addGap(175, 175, 175) .addComponent(jTextArea4, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(114, Short.MAX_VALUE))); jPanel4Layout .setVerticalGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addGap(16, 16, 16).addComponent(jTextArea4, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(16, 16, 16))); jPanel6.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel6.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jPanel6.setInheritsPopupMenu(true); jPanel6.setOpaque(false); jPanel6.setPreferredSize(new java.awt.Dimension(400, 58)); jPanel6.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(java.awt.event.MouseEvent evt) { jPanel6MouseExited(evt); } public void mouseClicked(java.awt.event.MouseEvent evt) { jPanel6MouseClicked(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { jPanel6MouseEntered(evt); } }); jTextArea5.setEditable(false); jTextArea5.setBackground(new java.awt.Color(255, 255, 255, 180)); jTextArea5.setColumns(20); jTextArea5.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N jTextArea5.setForeground(new java.awt.Color(51, 51, 51)); jTextArea5.setRows(5); jTextArea5.setText("Recurrent Neural Network"); jTextArea5.setAlignmentX(2.0F); jTextArea5.setAlignmentY(2.0F); jTextArea5.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jTextArea5.setDebugGraphicsOptions(javax.swing.DebugGraphics.NONE_OPTION); jTextArea5.setDisabledTextColor(new java.awt.Color(51, 51, 51)); jTextArea5.setEnabled(false); jTextArea5.setFocusable(false); jTextArea5.setOpaque(false); jTextArea5.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(java.awt.event.MouseEvent evt) { jTextArea5MouseExited(evt); } public void mouseClicked(java.awt.event.MouseEvent evt) { jTextArea5MouseClicked(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { jTextArea5MouseEntered(evt); } }); javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); jPanel6.setLayout(jPanel6Layout); jPanel6Layout.setHorizontalGroup(jPanel6Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup() .addContainerGap(181, Short.MAX_VALUE).addComponent(jTextArea5, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(113, 113, 113))); jPanel6Layout .setVerticalGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup().addGap(16, 16, 16).addComponent(jTextArea5, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(16, 16, 16))); jPanel15.setBackground(new java.awt.Color(38, 50, 56, 220)); jPanel15.setForeground(new java.awt.Color(51, 51, 51)); jPanel15.setDoubleBuffered(false); jPanel15.setEnabled(false); jPanel15.setFocusable(false); jPanel15.setOpaque(false); jTextArea3.setEditable(false); jTextArea3.setBackground(new java.awt.Color(38, 50, 56, 0)); jTextArea3.setColumns(20); jTextArea3.setFont(new java.awt.Font("Segoe UI", 0, 20)); // NOI18N jTextArea3.setForeground(new java.awt.Color(255, 255, 255)); jTextArea3.setRows(5); jTextArea3.setText("CURRENCY"); jTextArea3.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea3.setEnabled(false); jTextArea3.setOpaque(false); javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15); jPanel15.setLayout(jPanel15Layout); jPanel15Layout.setHorizontalGroup(jPanel15Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel15Layout.createSequentialGroup() .addContainerGap(237, Short.MAX_VALUE).addComponent(jTextArea3, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(183, 183, 183))); jPanel15Layout .setVerticalGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel15Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(jTextArea3, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel16.setBackground(new java.awt.Color(1, 87, 155, 220)); jPanel16.setDoubleBuffered(false); jPanel16.setEnabled(false); jPanel16.setFocusable(false); jPanel16.setOpaque(false); jTextArea6.setEditable(false); jTextArea6.setColumns(20); jTextArea6.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N jTextArea6.setForeground(new java.awt.Color(255, 255, 255)); jTextArea6.setRows(5); jTextArea6.setText("USD / INR"); jTextArea6.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea6.setEnabled(false); jTextArea6.setOpaque(false); javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16); jPanel16.setLayout(jPanel16Layout); jPanel16Layout .setHorizontalGroup(jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel16Layout.createSequentialGroup().addGap(244, 244, 244) .addComponent(jTextArea6, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(192, Short.MAX_VALUE))); jPanel16Layout .setVerticalGroup(jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel16Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(jTextArea6, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel17.setBackground(new java.awt.Color(1, 87, 155, 220)); jPanel17.setDoubleBuffered(false); jPanel17.setEnabled(false); jPanel17.setFocusable(false); jPanel17.setOpaque(false); jTextArea7.setEditable(false); jTextArea7.setColumns(20); jTextArea7.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N jTextArea7.setForeground(new java.awt.Color(255, 255, 255)); jTextArea7.setRows(5); jTextArea7.setText("GBP / INR"); jTextArea7.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea7.setEnabled(false); jTextArea7.setOpaque(false); javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17); jPanel17.setLayout(jPanel17Layout); jPanel17Layout .setHorizontalGroup(jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel17Layout.createSequentialGroup().addGap(244, 244, 244) .addComponent(jTextArea7, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(192, Short.MAX_VALUE))); jPanel17Layout .setVerticalGroup(jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel17Layout.createSequentialGroup().addGap(11, 11, 11) .addComponent(jTextArea7, javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE) .addGap(11, 11, 11))); jPanel18.setBackground(new java.awt.Color(1, 87, 155, 220)); jPanel18.setDoubleBuffered(false); jPanel18.setEnabled(false); jPanel18.setFocusable(false); jPanel18.setOpaque(false); jTextArea8.setEditable(false); jTextArea8.setColumns(20); jTextArea8.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N jTextArea8.setForeground(new java.awt.Color(255, 255, 255)); jTextArea8.setRows(5); jTextArea8.setText("EUR / INR"); jTextArea8.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea8.setEnabled(false); jTextArea8.setOpaque(false); javax.swing.GroupLayout jPanel18Layout = new javax.swing.GroupLayout(jPanel18); jPanel18.setLayout(jPanel18Layout); jPanel18Layout .setHorizontalGroup(jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel18Layout.createSequentialGroup().addGap(244, 244, 244) .addComponent(jTextArea8, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(192, Short.MAX_VALUE))); jPanel18Layout .setVerticalGroup(jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel18Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(jTextArea8, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel19.setBackground(new java.awt.Color(1, 87, 155, 220)); jPanel19.setForeground(new java.awt.Color(255, 255, 255)); jPanel19.setDoubleBuffered(false); jPanel19.setEnabled(false); jPanel19.setFocusable(false); jPanel19.setOpaque(false); jTextArea9.setEditable(false); jTextArea9.setColumns(20); jTextArea9.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N jTextArea9.setForeground(new java.awt.Color(255, 255, 255)); jTextArea9.setRows(5); jTextArea9.setText("YEN / INR"); jTextArea9.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea9.setEnabled(false); jTextArea9.setOpaque(false); javax.swing.GroupLayout jPanel19Layout = new javax.swing.GroupLayout(jPanel19); jPanel19.setLayout(jPanel19Layout); jPanel19Layout .setHorizontalGroup(jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel19Layout.createSequentialGroup().addGap(244, 244, 244) .addComponent(jTextArea9, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(192, Short.MAX_VALUE))); jPanel19Layout .setVerticalGroup(jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel19Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(jTextArea9, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel20.setBackground(new java.awt.Color(38, 50, 56, 220)); jPanel20.setForeground(new java.awt.Color(51, 51, 51)); jPanel20.setDoubleBuffered(false); jPanel20.setEnabled(false); jPanel20.setFocusable(false); jPanel20.setOpaque(false); jTextArea10.setEditable(false); jTextArea10.setBackground(new java.awt.Color(38, 50, 56, 0)); jTextArea10.setColumns(20); jTextArea10.setFont(new java.awt.Font("Segoe UI", 0, 20)); // NOI18N jTextArea10.setForeground(new java.awt.Color(255, 255, 255)); jTextArea10.setRows(5); jTextArea10.setText("TODAY"); jTextArea10.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea10.setEnabled(false); jTextArea10.setOpaque(false); javax.swing.GroupLayout jPanel20Layout = new javax.swing.GroupLayout(jPanel20); jPanel20.setLayout(jPanel20Layout); jPanel20Layout .setHorizontalGroup(jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel20Layout.createSequentialGroup().addGap(101, 101, 101) .addComponent(jTextArea10, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(85, Short.MAX_VALUE))); jPanel20Layout.setVerticalGroup(jPanel20Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel20Layout .createSequentialGroup().addGap(11, 11, 11).addComponent(jTextArea10, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel21.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel21.setDoubleBuffered(false); jPanel21.setEnabled(false); jPanel21.setFocusable(false); jPanel21.setOpaque(false); todayText1.setEditable(false); todayText1.setBackground(new java.awt.Color(255, 255, 255, 0)); todayText1.setColumns(20); todayText1.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N todayText1.setRows(5); todayText1.setText(" --"); todayText1.setDisabledTextColor(new java.awt.Color(0, 0, 0)); todayText1.setEnabled(false); todayText1.setOpaque(false); javax.swing.GroupLayout jPanel21Layout = new javax.swing.GroupLayout(jPanel21); jPanel21.setLayout(jPanel21Layout); jPanel21Layout .setHorizontalGroup(jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel21Layout.createSequentialGroup().addGap(102, 102, 102) .addComponent(todayText1, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(91, Short.MAX_VALUE))); jPanel21Layout .setVerticalGroup(jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel21Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(todayText1, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel22.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel22.setDoubleBuffered(false); jPanel22.setEnabled(false); jPanel22.setFocusable(false); jPanel22.setOpaque(false); todayText2.setEditable(false); todayText2.setBackground(new java.awt.Color(255, 255, 255, 0)); todayText2.setColumns(20); todayText2.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N todayText2.setRows(5); todayText2.setText(" --"); todayText2.setDisabledTextColor(new java.awt.Color(0, 0, 0)); todayText2.setEnabled(false); todayText2.setOpaque(false); javax.swing.GroupLayout jPanel22Layout = new javax.swing.GroupLayout(jPanel22); jPanel22.setLayout(jPanel22Layout); jPanel22Layout .setHorizontalGroup(jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel22Layout.createSequentialGroup().addGap(102, 102, 102) .addComponent(todayText2, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(91, Short.MAX_VALUE))); jPanel22Layout .setVerticalGroup(jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel22Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(todayText2, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel23.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel23.setDoubleBuffered(false); jPanel23.setEnabled(false); jPanel23.setFocusable(false); jPanel23.setOpaque(false); todayText3.setEditable(false); todayText3.setBackground(new java.awt.Color(255, 255, 255, 0)); todayText3.setColumns(20); todayText3.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N todayText3.setRows(5); todayText3.setText(" --"); todayText3.setDisabledTextColor(new java.awt.Color(0, 0, 0)); todayText3.setEnabled(false); todayText3.setOpaque(false); javax.swing.GroupLayout jPanel23Layout = new javax.swing.GroupLayout(jPanel23); jPanel23.setLayout(jPanel23Layout); jPanel23Layout .setHorizontalGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel23Layout.createSequentialGroup().addGap(102, 102, 102) .addComponent(todayText3, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(91, Short.MAX_VALUE))); jPanel23Layout .setVerticalGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel23Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(todayText3, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel24.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel24.setDoubleBuffered(false); jPanel24.setEnabled(false); jPanel24.setFocusable(false); jPanel24.setOpaque(false); todayText4.setEditable(false); todayText4.setBackground(new java.awt.Color(255, 255, 255, 0)); todayText4.setColumns(20); todayText4.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N todayText4.setRows(5); todayText4.setText(" --"); todayText4.setDisabledTextColor(new java.awt.Color(0, 0, 0)); todayText4.setEnabled(false); todayText4.setOpaque(false); javax.swing.GroupLayout jPanel24Layout = new javax.swing.GroupLayout(jPanel24); jPanel24.setLayout(jPanel24Layout); jPanel24Layout .setHorizontalGroup(jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel24Layout.createSequentialGroup().addGap(102, 102, 102) .addComponent(todayText4, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(91, Short.MAX_VALUE))); jPanel24Layout .setVerticalGroup(jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel24Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(todayText4, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel25.setBackground(new java.awt.Color(38, 50, 56, 220)); jPanel25.setForeground(new java.awt.Color(51, 51, 51)); jPanel25.setDoubleBuffered(false); jPanel25.setEnabled(false); jPanel25.setFocusable(false); jPanel25.setOpaque(false); jTextArea15.setEditable(false); jTextArea15.setBackground(new java.awt.Color(38, 50, 56, 0)); jTextArea15.setColumns(20); jTextArea15.setFont(new java.awt.Font("Segoe UI", 0, 20)); // NOI18N jTextArea15.setForeground(new java.awt.Color(255, 255, 255)); jTextArea15.setRows(5); jTextArea15.setText("TOMORROW"); jTextArea15.setDisabledTextColor(new java.awt.Color(255, 255, 255)); jTextArea15.setEnabled(false); jTextArea15.setOpaque(false); jTextArea15.setRequestFocusEnabled(false); jTextArea15.setVerifyInputWhenFocusTarget(false); javax.swing.GroupLayout jPanel25Layout = new javax.swing.GroupLayout(jPanel25); jPanel25.setLayout(jPanel25Layout); jPanel25Layout .setHorizontalGroup(jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel25Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jTextArea15, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanel25Layout.setVerticalGroup(jPanel25Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel25Layout .createSequentialGroup().addGap(11, 11, 11).addComponent(jTextArea15, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel26.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel26.setDoubleBuffered(false); jPanel26.setEnabled(false); jPanel26.setFocusable(false); jPanel26.setOpaque(false); tmrwText1.setEditable(false); tmrwText1.setBackground(new java.awt.Color(255, 255, 255, 0)); tmrwText1.setColumns(20); tmrwText1.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N tmrwText1.setRows(5); tmrwText1.setText(" --"); tmrwText1.setDisabledTextColor(new java.awt.Color(0, 0, 0)); tmrwText1.setEnabled(false); tmrwText1.setOpaque(false); javax.swing.GroupLayout jPanel26Layout = new javax.swing.GroupLayout(jPanel26); jPanel26.setLayout(jPanel26Layout); jPanel26Layout .setHorizontalGroup(jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel26Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(tmrwText1, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanel26Layout .setVerticalGroup(jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel26Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(tmrwText1, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel27.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel27.setDoubleBuffered(false); jPanel27.setEnabled(false); jPanel27.setFocusable(false); jPanel27.setOpaque(false); tmrwText2.setEditable(false); tmrwText2.setBackground(new java.awt.Color(255, 255, 255, 0)); tmrwText2.setColumns(20); tmrwText2.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N tmrwText2.setRows(5); tmrwText2.setText(" --"); tmrwText2.setDisabledTextColor(new java.awt.Color(0, 0, 0)); tmrwText2.setEnabled(false); tmrwText2.setOpaque(false); javax.swing.GroupLayout jPanel27Layout = new javax.swing.GroupLayout(jPanel27); jPanel27.setLayout(jPanel27Layout); jPanel27Layout .setHorizontalGroup(jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel27Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(tmrwText2, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(85, 85, 85))); jPanel27Layout.setVerticalGroup( jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, jPanel27Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(tmrwText2, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel28.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel28.setDoubleBuffered(false); jPanel28.setEnabled(false); jPanel28.setFocusable(false); jPanel28.setOpaque(false); tmrwText3.setEditable(false); tmrwText3.setBackground(new java.awt.Color(255, 255, 255, 0)); tmrwText3.setColumns(20); tmrwText3.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N tmrwText3.setRows(5); tmrwText3.setText(" --"); tmrwText3.setDisabledTextColor(new java.awt.Color(0, 0, 0)); tmrwText3.setEnabled(false); tmrwText3.setOpaque(false); javax.swing.GroupLayout jPanel28Layout = new javax.swing.GroupLayout(jPanel28); jPanel28.setLayout(jPanel28Layout); jPanel28Layout .setHorizontalGroup(jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel28Layout.createSequentialGroup().addGap(83, 83, 83) .addComponent(tmrwText3, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanel28Layout .setVerticalGroup(jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel28Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(tmrwText3, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); jPanel29.setBackground(new java.awt.Color(255, 255, 255, 220)); jPanel29.setDoubleBuffered(false); jPanel29.setEnabled(false); jPanel29.setFocusable(false); jPanel29.setOpaque(false); tmrwText4.setEditable(false); tmrwText4.setBackground(new java.awt.Color(255, 255, 255, 0)); tmrwText4.setColumns(20); tmrwText4.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N tmrwText4.setRows(5); tmrwText4.setText(" --"); tmrwText4.setDisabledTextColor(new java.awt.Color(0, 0, 0)); tmrwText4.setEnabled(false); tmrwText4.setOpaque(false); javax.swing.GroupLayout jPanel29Layout = new javax.swing.GroupLayout(jPanel29); jPanel29.setLayout(jPanel29Layout); jPanel29Layout .setHorizontalGroup(jPanel29Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel29Layout.createSequentialGroup().addGap(83, 83, 83) .addComponent(tmrwText4, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanel29Layout .setVerticalGroup(jPanel29Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel29Layout.createSequentialGroup().addGap(11, 11, 11).addComponent(tmrwText4, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11))); statusLabel.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N statusLabel.setForeground(new java.awt.Color(0, 51, 0)); statusLabel.setText("Fetching Todays Data From Internet ..."); javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14); jPanel14.setLayout(jPanel14Layout); jPanel14Layout.setHorizontalGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel14Layout.createSequentialGroup().addGap(144, 144, 144).addGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jTextArea1) .addGroup(jPanel14Layout.createSequentialGroup() .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 534, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(10, 10, 10).addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, 539, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel14Layout.createSequentialGroup().addGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel19, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(10, 10, 10) .addGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel20, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel23, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel24, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(10, 10, 10) .addGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jPanel28, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel26, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel27, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel29, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel25, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addComponent(statusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 600, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(144, Short.MAX_VALUE))); jPanel14Layout.setVerticalGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel14Layout.createSequentialGroup().addContainerGap(90, Short.MAX_VALUE) .addComponent(jTextArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(20, 20, 20) .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel14Layout.createSequentialGroup().addGroup(jPanel14Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel14Layout.createSequentialGroup() .addComponent(jPanel20, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(6, 6, 6) .addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel22, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel23, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel14Layout .createSequentialGroup() .addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel16, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel24, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel14Layout.createSequentialGroup() .addComponent(jPanel25, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel26, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel27, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel28, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel29, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel19, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(20, 20, 20) .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(statusLabel).addGap(24, 24, 24))); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jPanel14, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jPanel14, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)); jTabbedPane1.addTab(" Home ", jPanel3); jPanel10.setBackground(new java.awt.Color(38, 50, 56, 220)); jPanel10.setDoubleBuffered(false); jPanel10.setEnabled(false); jPanel10.setFocusable(false); jPanel10.setOpaque(false); jLabel8.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jLabel8.setForeground(new java.awt.Color(255, 255, 255)); jLabel8.setText("Select Currency:"); CurrencyComboBox.setBackground(new java.awt.Color(56, 56, 56, 0)); CurrencyComboBox.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N CurrencyComboBox.setModel(new javax.swing.DefaultComboBoxModel<>( new String[] { "US Dollar", "British Pound", "Euro", "Yen" })); CurrencyComboBox.setAlignmentX(2.0F); CurrencyComboBox.setOpaque(false); jLabel7.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jLabel7.setForeground(new java.awt.Color(255, 255, 255)); jLabel7.setText("Testing Data:"); testingDataPath.setBackground(new java.awt.Color(255, 255, 255, 200)); testingDataPath.setMargin(new java.awt.Insets(2, 4, 2, 2)); testingDataPath.setOpaque(false); testingDataPath.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { testingDataPathFocusGained(evt); } }); testingDataPath.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { testingDataPathMouseClicked(evt); } }); testingDataPath.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { testingDataPathActionPerformed(evt); } }); testingBrowseBtn.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N testingBrowseBtn.setText("Browse"); testingBrowseBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { testingBrowseBtnActionPerformed(evt); } }); forecastBtn.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N forecastBtn.setText("Forecast"); forecastBtn.setOpaque(false); forecastBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { forecastBtnActionPerformed(evt); } }); javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10); jPanel10.setLayout(jPanel10Layout); jPanel10Layout.setHorizontalGroup(jPanel10Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel10Layout.createSequentialGroup().addGap(18, 18, 18) .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(CurrencyComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(31, 31, 31).addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(testingDataPath, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(testingBrowseBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(forecastBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(20, 20, 20))); jPanel10Layout.setVerticalGroup(jPanel10Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel10Layout.createSequentialGroup().addGap(22, 22, 22) .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8) .addComponent(CurrencyComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7) .addComponent(testingDataPath, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(testingBrowseBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(forecastBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(22, Short.MAX_VALUE))); jScrollPane1.setEnabled(false); jScrollPane1.setFocusable(false); jScrollPane1.setPreferredSize(new java.awt.Dimension(805, 100)); //forecastTable.getTableHeader().setOpaque(false); //forecastTable.getTableHeader().setBackground(new java.awt.Color(0,150,136,220)); forecastTable.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N forecastTable.setModel(new javax.swing.table.DefaultTableModel( new Object[][] { { "", "", "", "" }, { null, null, null, null }, { null, null, null, null }, { null, null, null, null } }, new String[] { " Date", " Input", " Expected Output", " Actual Output" }) { Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class }; boolean[] canEdit = new boolean[] { false, true, false, false }; public Class getColumnClass(int columnIndex) { return types[columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit[columnIndex]; } }); forecastTable.setAlignmentX(20.0F); forecastTable.setAlignmentY(20.0F); forecastTable.setGridColor(new java.awt.Color(153, 153, 153)); forecastTable.setIntercellSpacing(new java.awt.Dimension(20, 10)); forecastTable.setRowHeight(30); forecastTable.getTableHeader().setResizingAllowed(false); forecastTable.getTableHeader().setReorderingAllowed(false); forecastTable.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { forecastTableFocusLost(evt); } }); jScrollPane1.setViewportView(forecastTable); if (forecastTable.getColumnModel().getColumnCount() > 0) { forecastTable.getColumnModel().getColumn(0).setMinWidth(150); forecastTable.getColumnModel().getColumn(0).setPreferredWidth(150); forecastTable.getColumnModel().getColumn(0).setMaxWidth(150); forecastTable.getColumnModel().getColumn(1).setMinWidth(550); forecastTable.getColumnModel().getColumn(1).setPreferredWidth(550); forecastTable.getColumnModel().getColumn(1).setMaxWidth(550); forecastTable.getColumnModel().getColumn(1).setCellEditor(dce); } jPanel12.setBackground(new java.awt.Color(38, 50, 56, 220)); jPanel12.setOpaque(false); jPanel13.setBackground(new java.awt.Color(56, 56, 56, 180)); jPanel13.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Select Algorithm", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 0, 12), new java.awt.Color(255, 255, 255))); // NOI18N jPanel13.setOpaque(false); jRadioButton2.setBackground(new java.awt.Color(56, 56, 56, 180)); buttonGroup1.add(jRadioButton2); jRadioButton2.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jRadioButton2.setForeground(new java.awt.Color(255, 255, 255)); jRadioButton2.setText("Recurrent Neural Network"); jRadioButton2.setContentAreaFilled(false); jRadioButton2.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { jRadioButton2ItemStateChanged(evt); } }); jRadioButton1.setBackground(new java.awt.Color(56, 56, 56, 180)); buttonGroup1.add(jRadioButton1); jRadioButton1.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jRadioButton1.setForeground(new java.awt.Color(255, 255, 255)); jRadioButton1.setSelected(true); jRadioButton1.setText("Feed Forward Neural Network"); jRadioButton1.setContentAreaFilled(false); jRadioButton1.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { jRadioButton1ItemStateChanged(evt); } }); javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13); jPanel13.setLayout(jPanel13Layout); jPanel13Layout .setHorizontalGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel13Layout.createSequentialGroup().addGap(95, 95, 95) .addComponent(jRadioButton1).addGap(102, 102, 102) .addComponent(jRadioButton2).addContainerGap(116, Short.MAX_VALUE))); jPanel13Layout.setVerticalGroup(jPanel13Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel13Layout.createSequentialGroup() .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jRadioButton1).addComponent(jRadioButton2)) .addGap(0, 0, Short.MAX_VALUE))); javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12); jPanel12.setLayout(jPanel12Layout); jPanel12Layout.setHorizontalGroup(jPanel12Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel12Layout.createSequentialGroup().addContainerGap() .addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanel12Layout.setVerticalGroup(jPanel12Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel12Layout.createSequentialGroup().addContainerGap() .addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanel2.setBackground(new java.awt.Color(38, 50, 56, 220)); jPanel2.setOpaque(false); doneButton1.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N doneButton1.setText("Train NN"); doneButton1.setOpaque(false); doneButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { doneButton1MouseClicked(evt); } }); doneButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { doneButton1ActionPerformed(evt); } }); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addGap(28, 28, 28).addComponent(doneButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(21, 21, 21))); jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addGap(22, 22, 22).addComponent(doneButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(23, 23, 23))); jPanel30.setBackground(new java.awt.Color(38, 50, 56, 220)); jPanel30.setDoubleBuffered(false); jPanel30.setEnabled(false); jPanel30.setFocusable(false); jPanel30.setOpaque(false); graphBtn.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N graphBtn.setText("Plot Graph"); graphBtn.setOpaque(false); graphBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { graphBtnActionPerformed(evt); } }); jButton1.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jButton1.setText("Reset"); jButton1.setOpaque(false); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); javax.swing.GroupLayout jPanel30Layout = new javax.swing.GroupLayout(jPanel30); jPanel30.setLayout(jPanel30Layout); jPanel30Layout.setHorizontalGroup(jPanel30Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel30Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel30Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(graphBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap())); jPanel30Layout .setVerticalGroup(jPanel30Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel30Layout.createSequentialGroup().addGap(22, 22, 22) .addComponent(graphBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(59, 59, 59).addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(22, 22, 22))); javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8); jPanel8.setLayout(jPanel8Layout); jPanel8Layout.setHorizontalGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup().addGap(148, 148, 148).addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1089, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel8Layout.createSequentialGroup() .addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel8Layout.createSequentialGroup() .addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(10, 10, 10) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel30, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addContainerGap(134, Short.MAX_VALUE))); jPanel8Layout.setVerticalGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel8Layout.createSequentialGroup().addGap(84, 84, 84).addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel8Layout.createSequentialGroup().addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(11, 11, 11).addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel30, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 376, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(36, 36, 36))); jTabbedPane1.addTab(" Forecast ", jPanel8); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1376, javax.swing.GroupLayout.PREFERRED_SIZE)); jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 614, Short.MAX_VALUE)); jTabbedPane1.getAccessibleContext().setAccessibleName("Home"); jScrollPane2.setViewportView(jPanel1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 1371, Short.MAX_VALUE)); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent( jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 586, Short.MAX_VALUE)); pack(); }// </editor-fold>//GEN-END:initComponents private void testingBrowseBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_testingBrowseBtnActionPerformed int returnVal = fileChooser.showOpenDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); testingDataPath.setText(file.getAbsolutePath()); } else { System.out.println("File access cancelled by user."); } }//GEN-LAST:event_testingBrowseBtnActionPerformed private void doneButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doneButton1ActionPerformed }//GEN-LAST:event_doneButton1ActionPerformed private void forecastBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_forecastBtnActionPerformed setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); DefaultTableModel dtm = (DefaultTableModel) forecastTable.getModel(); dtm.setRowCount(0); dtm.setRowCount(4); if (algo == 1) { startFForecast(); } else { startRForecast(); } setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_forecastBtnActionPerformed private void startFForecast() { BufferedReader br = null; List<Double> inputValues = new ArrayList<Double>(); String currency = ""; int currencyCol; int inputCnt, hiddenCnt, outputCnt; double expectedOutput = 0; String tableRowData[] = new String[4]; Double output; File testDataFile = new File(testingDataPath.getText()); currencyCol = CurrencyComboBox.getSelectedIndex() + 1; currency = Utility.getCurrency(currencyCol); File file = new File("FFresource/" + currency + ".csv"); FileReader fr; String[] cols; try { br = new BufferedReader(new FileReader(file)); cols = br.readLine().split(","); inputCnt = Integer.parseInt(cols[0]); hiddenCnt = Integer.parseInt(cols[1]); outputCnt = Integer.parseInt(cols[2]); br.close(); try { File testResultFile = new File("FFresource/testing.txt"); Files.deleteIfExists(testResultFile.toPath()); br = new BufferedReader(new FileReader(testDataFile)); int i = 0; while (true) { readDataFromFile(br, inputCnt, inputValues, currencyCol, tableRowData); FFData data = new FFData(); data.setInputNeurons(inputCnt); data.setHiddenNeurons(hiddenCnt); data.setOutputNeurons(outputCnt); data.setCurrencyCol(currencyCol); data.setInputValues(inputValues); FForecast task = new FForecast(data); output = task.forecast(); tableRowData[ACTUAL_OUTPUT_COL] = Utility.formatDecimal(output); fillTable(tableRowData, i); i++; try (PrintWriter out = new PrintWriter( new BufferedWriter(new FileWriter("FFresource/testing.txt", true)))) { out.println("intput: " + tableRowData[INPUT_COL]); out.println("Expected Output: " + tableRowData[EXPECTED_OUTPUT_COL]); out.println("Actual: " + output + "\n"); } catch (IOException e) { System.err.println(e); } } } catch (FileNotFoundException ex) { String msg = "File " + testDataFile.getName() + " not found !!"; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); //DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (NumberFormatException ex) { String msg = "Error reading " + testDataFile.getName() + ".\nFormat is not correct !!"; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); // DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (EOFException e) { System.out.println("History data file is completely read."); } catch (IOException ex) { String msg = "Error reading " + testDataFile.getName() + " !!"; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); // DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } finally { br.close(); } } catch (FileNotFoundException ex) { String msg = "Training weights not found for " + currency + ".\nMake sure neural network is trained !! "; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); //DialogBox.setVisible(true); //Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { String msg = "Error reading weights file for " + currency + ".\nMake sure neural network is trained properly !! "; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); //DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } } private void startRForecast() { BufferedReader br = null; List<Double> inputValues = new ArrayList<Double>(); String currency = ""; int currencyCol; int inputCnt, hiddenCnt1, hiddenCnt2, outputCnt; double expectedOutput = 0; String tableRowData[] = new String[4]; Double output; File testDataFile = new File(testingDataPath.getText()); currencyCol = CurrencyComboBox.getSelectedIndex() + 1; currency = Utility.getCurrency(currencyCol); File file = new File("RNNresource/" + currency + ".csv"); FileReader fr; String[] cols; try { br = new BufferedReader(new FileReader(file)); cols = br.readLine().split(","); inputCnt = Integer.parseInt(cols[0]); hiddenCnt1 = Integer.parseInt(cols[1]); hiddenCnt2 = Integer.parseInt(cols[2]); outputCnt = Integer.parseInt(cols[3]); br.close(); try { File testResultFile = new File("RNNresource/testing.txt"); Files.deleteIfExists(testResultFile.toPath()); br = new BufferedReader(new FileReader(testDataFile)); int i = 0; while (true) { readDataFromFile(br, inputCnt, inputValues, currencyCol, tableRowData); RecurrentData data = new RecurrentData(); data.setInputNeurons(inputCnt); data.setHiddenNeurons1(hiddenCnt1); data.setHiddenNeurons2(hiddenCnt2); data.setOutputNeurons(outputCnt); data.setCurrencyCol(currencyCol); data.setInputValues(inputValues); RForecast task = new RForecast(data); output = task.forecast(); tableRowData[ACTUAL_OUTPUT_COL] = Utility.formatDecimal(output); fillTable(tableRowData, i); i++; try (PrintWriter out = new PrintWriter( new BufferedWriter(new FileWriter("RNNresource/testing.txt", true)))) { out.println("intput: " + tableRowData[INPUT_COL]); out.println("Expected Output: " + tableRowData[EXPECTED_OUTPUT_COL]); out.println("Actual: " + output + "\n"); } catch (IOException e) { System.err.println(e); } } } catch (FileNotFoundException ex) { String msg = "File " + testDataFile.getName() + " not found !!"; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (NumberFormatException ex) { String msg = "Error reading " + testDataFile.getName() + ".\nFormat is not correct !!"; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); // DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (EOFException e) { System.out.println("History data file is completely read."); } catch (IOException ex) { String msg = "Error reading " + testDataFile.getName() + " !!"; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); // DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } finally { br.close(); } } catch (FileNotFoundException ex) { String msg = "Training weights not found for " + currency + ".\nMake sure neural network is trained !! "; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); //DialogBox.setVisible(true); //Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { String msg = "Error reading weights file for " + currency + ".\nMake sure neural network is trained properly !! "; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); //DialogBox.setVisible(true); // Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex); } } private void fillTable(String[] tableRowData, int row) { DefaultTableModel model = (DefaultTableModel) forecastTable.getModel(); if (row >= forecastTable.getRowCount()) model.addRow(new Object[] { "", "", "", "", "" }); forecastTable.setValueAt(tableRowData[DATE_COL], row, DATE_COL); forecastTable.setValueAt(tableRowData[INPUT_COL], row, INPUT_COL); forecastTable.setValueAt(tableRowData[EXPECTED_OUTPUT_COL], row, EXPECTED_OUTPUT_COL); forecastTable.setValueAt(tableRowData[ACTUAL_OUTPUT_COL], row, ACTUAL_OUTPUT_COL); } private void readDataFromFile(BufferedReader br, int inputCnt, List<Double> inputValues, int currencyCol, String[] tableRowData) throws NumberFormatException, EOFException, IOException { String line; String[] cols; int flag = 1; if (inputValues.size() == 0) { for (int i = 0; i < inputCnt; i++) { if ((line = br.readLine()) != null) { // use comma as separator cols = line.split(","); inputValues.add(Utility.normalize(Double.parseDouble(cols[currencyCol]), currencyCol)); } else { throw new EOFException(); } } } else { //shift every input to left and add previous expected output to last //and read expected output from next row. inputValues.remove(0); inputValues.add(Utility.normalize(Double.parseDouble(tableRowData[EXPECTED_OUTPUT_COL]), currencyCol)); } String str; str = "" + Utility.formatDecimal(Utility.denormalize(inputValues.get(0), currencyCol)); Double d; for (int j = 1; j < inputValues.size(); j++) { d = inputValues.get(j); str += ", " + Utility.formatDecimal(Utility.denormalize(d, currencyCol)); } tableRowData[INPUT_COL] = str; // Read expected output to display. if ((line = br.readLine()) != null) { cols = line.split(","); tableRowData[EXPECTED_OUTPUT_COL] = Utility.formatDecimal(Double.parseDouble(cols[currencyCol])); tableRowData[DATE_COL] = cols[0]; } else { throw new EOFException(); } } private void doneButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_doneButton1MouseClicked // TODO add your handling code here: if (algo == 1) { jFrame1.pack(); jFrame1.setVisible(true); } else if (algo == 2) { jFrame2.pack(); jFrame2.setVisible(true); } }//GEN-LAST:event_doneButton1MouseClicked private void submitBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_submitBtnActionPerformed // TODO add your handling code here: submitBtn.setEnabled(false); finishBtn.setEnabled(false); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); double minErrorCondition = 0.01; FFData data = new FFData(); data.setCurrencyCol(fCurrencyComboBox.getSelectedIndex() + 1); data.setInputNeurons((Integer) inputNeurons.getValue()); data.setHiddenNeurons((Integer) hiddenNeurons.getValue()); data.setOutputNeurons((Integer) fOutputNeurons.getValue()); data.setFilePath(filePath.getText()); data.setEpoch((Integer) epochInput.getValue()); data.setMinError(minErrorCondition); data.setContext(this); FFTrain task = new FFTrain(data); task.addPropertyChangeListener(new MyfnnListener()); task.execute(); }//GEN-LAST:event_submitBtnActionPerformed private void filePathActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_filePathActionPerformed // TODO add your handling code here: }//GEN-LAST:event_filePathActionPerformed private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed filePath.setText(chooseFile()); }//GEN-LAST:event_jButton4ActionPerformed private String chooseFile() { int returnVal = fileChooser.showOpenDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); return file.getAbsolutePath(); } else { System.out.println("File access cancelled by user."); return ""; } } private void fCurrencyComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fCurrencyComboBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_fCurrencyComboBoxActionPerformed private void finishBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_finishBtnActionPerformed // TODO add your handling code here: jFrame1.dispose(); }//GEN-LAST:event_finishBtnActionPerformed private void filePathFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_filePathFocusGained // TODO add your handling code here: filePath.selectAll(); }//GEN-LAST:event_filePathFocusGained private void rSubmitBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rSubmitBtnActionPerformed rSubmitBtn.setEnabled(false); rFinishBtn.setEnabled(false); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); double minErrorCondition = 0.01; RecurrentData data = new RecurrentData(); data.setCurrencyCol(rCurrencyComboBox.getSelectedIndex() + 1); data.setInputNeurons((Integer) rInputNeurons.getValue()); data.setHiddenNeurons1((Integer) rHiddenNeurons1.getValue()); data.setHiddenNeurons2((Integer) rHiddenNeurons2.getValue()); data.setOutputNeurons((Integer) rOutputNeurons.getValue()); data.setFilePath(rFilePath.getText()); data.setEpoch((Integer) rSpinner.getValue()); data.setMinError(minErrorCondition); data.setContext(this); RecurrentTrain task = new RecurrentTrain(data); task.addPropertyChangeListener(new MyRnnListener()); task.execute(); }//GEN-LAST:event_rSubmitBtnActionPerformed private void rFilePathFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_rFilePathFocusGained // TODO add your handling code here: rFilePath.selectAll(); }//GEN-LAST:event_rFilePathFocusGained private void rFilePathActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rFilePathActionPerformed // TODO add your handling code here: }//GEN-LAST:event_rFilePathActionPerformed private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed rFilePath.setText(chooseFile()); }//GEN-LAST:event_jButton6ActionPerformed private void rCurrencyComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rCurrencyComboBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_rCurrencyComboBoxActionPerformed private void rFinishBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rFinishBtnActionPerformed jFrame2.dispose(); }//GEN-LAST:event_rFinishBtnActionPerformed private void testingDataPathMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_testingDataPathMouseClicked // TODO add your handling code here: }//GEN-LAST:event_testingDataPathMouseClicked private void testingDataPathActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_testingDataPathActionPerformed // TODO add your handling code here: testingDataPath.selectAll(); }//GEN-LAST:event_testingDataPathActionPerformed private void jRadioButton1ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jRadioButton1ItemStateChanged // TODO add your handling code here: algo = 1; }//GEN-LAST:event_jRadioButton1ItemStateChanged private void jRadioButton2ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jRadioButton2ItemStateChanged // TODO add your handling code here: algo = 2; }//GEN-LAST:event_jRadioButton2ItemStateChanged private void testingDataPathFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_testingDataPathFocusGained // TODO add your handling code here: testingDataPath.selectAll(); }//GEN-LAST:event_testingDataPathFocusGained private void forecastTableFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_forecastTableFocusLost forecastTable.getSelectionModel().clearSelection(); }//GEN-LAST:event_forecastTableFocusLost private void graphBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_graphBtnActionPerformed int i = forecastTable.getRowCount(); int l = 0, h = 0; if (i > 30) { String[] args = null; // args[0] = (String)CurrencyComboBox.getSelectedItem(); XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); XYSeries dataset1 = new XYSeries("expected"); XYSeries dataset2 = new XYSeries("actual"); for (int j = 0; j < i; j++) { double f = Double.parseDouble((String) forecastTable.getValueAt(j, 2)); double g = Double.parseDouble((String) forecastTable.getValueAt(j, 3)); dataset1.add(j + 1, f); dataset2.add(j + 1, g); } xySeriesCollection.addSeries(dataset1); xySeriesCollection.addSeries(dataset2); switch (CurrencyComboBox.getSelectedIndex()) { case 0: l = 45; h = 75; break; case 1: l = 70; h = 110; break; case 2: l = 60; h = 100; break; case 3: l = 40; h = 80; break; } LineChart.main(args, xySeriesCollection, l, h); } else { String msg = "Forecast Exchange Rate First!!"; JOptionPane.showMessageDialog(Utility.getActiveFrame(), msg, "Error", JOptionPane.WARNING_MESSAGE); } // TODO add your handling code here: }//GEN-LAST:event_graphBtnActionPerformed private void jPanel6MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel6MouseExited jPanel6.setBackground(new java.awt.Color(255, 255, 255, 220)); jTextArea5.setDisabledTextColor(new java.awt.Color(51, 51, 51)); }//GEN-LAST:event_jPanel6MouseExited private void jPanel6MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel6MouseEntered jPanel6.setBackground(new java.awt.Color(0, 150, 136, 220)); jTextArea5.setDisabledTextColor(new java.awt.Color(255, 255, 255)); }//GEN-LAST:event_jPanel6MouseEntered private void jPanel6MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel6MouseClicked jTabbedPane1.setSelectedIndex(1); algo = 2; jRadioButton2.setSelected(true); }//GEN-LAST:event_jPanel6MouseClicked private void jTextArea5MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextArea5MouseExited jPanel6.setBackground(new java.awt.Color(255, 255, 255, 220)); jTextArea5.setDisabledTextColor(new java.awt.Color(51, 51, 51)); }//GEN-LAST:event_jTextArea5MouseExited private void jTextArea5MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextArea5MouseEntered jPanel6.setBackground(new java.awt.Color(0, 150, 136, 220)); jTextArea5.setDisabledTextColor(new java.awt.Color(255, 255, 255)); }//GEN-LAST:event_jTextArea5MouseEntered private void jTextArea5MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextArea5MouseClicked jTabbedPane1.setSelectedIndex(1); algo = 2; jRadioButton2.setSelected(true); }//GEN-LAST:event_jTextArea5MouseClicked private void jPanel4MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel4MouseExited jPanel4.setBackground(new java.awt.Color(255, 255, 255, 220)); jTextArea4.setDisabledTextColor(new java.awt.Color(51, 51, 51)); }//GEN-LAST:event_jPanel4MouseExited private void jPanel4MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel4MouseEntered jPanel4.setBackground(new java.awt.Color(0, 150, 136, 220)); jTextArea4.setDisabledTextColor(new java.awt.Color(255, 255, 255)); }//GEN-LAST:event_jPanel4MouseEntered private void jPanel4MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel4MouseClicked jTabbedPane1.setSelectedIndex(1); algo = 1; jRadioButton1.setSelected(true); }//GEN-LAST:event_jPanel4MouseClicked private void jTextArea4MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextArea4MouseExited jPanel4.setBackground(new java.awt.Color(255, 255, 255, 220)); jTextArea4.setDisabledTextColor(new java.awt.Color(51, 51, 51)); }//GEN-LAST:event_jTextArea4MouseExited private void jTextArea4MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextArea4MouseEntered jPanel4.setBackground(new java.awt.Color(0, 150, 136, 220)); jTextArea4.setDisabledTextColor(new java.awt.Color(255, 255, 255)); }//GEN-LAST:event_jTextArea4MouseEntered private void jTextArea4MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextArea4MouseClicked jTabbedPane1.setSelectedIndex(1); algo = 1; jRadioButton1.setSelected(true); }//GEN-LAST:event_jTextArea4MouseClicked private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed DefaultTableModel dtm = (DefaultTableModel) forecastTable.getModel(); dtm.setRowCount(0); dtm.setRowCount(4); }//GEN-LAST:event_jButton1ActionPerformed private FocusListener fcsListener = new FocusListener() { @Override public void focusGained(FocusEvent e) { dumpInfo(e); } @Override public void focusLost(FocusEvent e) { dumpInfo(e); } private void dumpInfo(FocusEvent e) { final Component c = e.getComponent(); if (c instanceof JFormattedTextField) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { ((JFormattedTextField) c).setText(((JFormattedTextField) c).getText()); ((JFormattedTextField) c).selectAll(); } }); } } private String name(Component c) { return (c == null) ? null : c.getName(); } }; /** * @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 ("Windows".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(MainUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(MainUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(MainUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(MainUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> SwingUtilities.invokeLater(new Runnable() { public void run() { MainUI frame = new MainUI(); frame.setVisible(true); ApiCaller task = new ApiCaller(frame); task.execute(); } }); } public JButton getrFinishBtn() { return rFinishBtn; } public JButton getrSubmitBtn() { return rSubmitBtn; } public JButton getFinishBtn() { return finishBtn; } public JButton getSubmitBtn() { return submitBtn; } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox<String> CurrencyComboBox; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JButton doneButton1; private javax.swing.JSpinner epochInput; private javax.swing.JComboBox<String> fCurrencyComboBox; private javax.swing.JSpinner fOutputNeurons; private javax.swing.JFileChooser fileChooser; private java.awt.TextField filePath; private javax.swing.JButton finishBtn; private javax.swing.JButton forecastBtn; private javax.swing.JTable forecastTable; private javax.swing.JButton graphBtn; private javax.swing.JSpinner hiddenNeurons; private javax.swing.JSpinner inputNeurons; private javax.swing.JButton jButton1; private javax.swing.JButton jButton4; private javax.swing.JButton jButton6; private javax.swing.JFrame jFrame1; private javax.swing.JFrame jFrame2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel25; private javax.swing.JLabel jLabel26; private javax.swing.JLabel jLabel27; private javax.swing.JLabel jLabel28; private javax.swing.JLabel jLabel29; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel30; private javax.swing.JLabel jLabel31; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel10; private javax.swing.JPanel jPanel11; private javax.swing.JPanel jPanel12; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14; private javax.swing.JPanel jPanel15; private javax.swing.JPanel jPanel16; private javax.swing.JPanel jPanel17; private javax.swing.JPanel jPanel18; private javax.swing.JPanel jPanel19; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel20; private javax.swing.JPanel jPanel21; private javax.swing.JPanel jPanel22; private javax.swing.JPanel jPanel23; private javax.swing.JPanel jPanel24; private javax.swing.JPanel jPanel25; private javax.swing.JPanel jPanel26; private javax.swing.JPanel jPanel27; private javax.swing.JPanel jPanel28; private javax.swing.JPanel jPanel29; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel30; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JPanel jPanel9; private javax.swing.JProgressBar jProgressBar1; private javax.swing.JRadioButton jRadioButton1; private javax.swing.JRadioButton jRadioButton2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextArea jTextArea10; private javax.swing.JTextArea jTextArea15; private javax.swing.JTextArea jTextArea3; private javax.swing.JTextArea jTextArea4; private javax.swing.JTextArea jTextArea5; private javax.swing.JTextArea jTextArea6; private javax.swing.JTextArea jTextArea7; private javax.swing.JTextArea jTextArea8; private javax.swing.JTextArea jTextArea9; private javax.swing.JComboBox<String> rCurrencyComboBox; private java.awt.TextField rFilePath; private javax.swing.JButton rFinishBtn; private javax.swing.JSpinner rHiddenNeurons1; private javax.swing.JSpinner rHiddenNeurons2; private javax.swing.JSpinner rInputNeurons; private javax.swing.JSpinner rOutputNeurons; private javax.swing.JProgressBar rProgressBar; private javax.swing.JSpinner rSpinner; private javax.swing.JButton rSubmitBtn; private javax.swing.JLabel statusLabel; private javax.swing.JButton submitBtn; private javax.swing.JLabel testLabel; private javax.swing.JLabel testLabel1; private javax.swing.JToggleButton testingBrowseBtn; private javax.swing.JTextField testingDataPath; private javax.swing.JTextArea tmrwText1; private javax.swing.JTextArea tmrwText2; private javax.swing.JTextArea tmrwText3; private javax.swing.JTextArea tmrwText4; private javax.swing.JTextArea todayText1; private javax.swing.JTextArea todayText2; private javax.swing.JTextArea todayText3; private javax.swing.JTextArea todayText4; // End of variables declaration//GEN-END:variables }