public void model_admin() { if (ajf != null) { ajf.dispose(); } if (jf != null) { jf.dispose(); } ajf = new AdminRunningFrame(this); ajf.startPage(); if (DBfile.exists()) { try { cust = returnSavedData("p2.dat"); if (cust.isEmpty()) { ajf.errorMessage("There are no customers in this database."); } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } } if (logFile.exists()) { try { adminLogs = returnLog("p2.log"); if (adminLogs.isEmpty()) { ajf.errorMessage("No entries have been found!"); } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } } }
/** * Checks if the score is high enough to get to the high scores list, adds the name and score and * organizes the list. If HighScores.dat is not found, the method generates a blank one. * * @param name The nickname of the person getting to the list. * @param score The score gained. */ public static void addHighScore(String name, int score) { // If we don't yet have a high scores table, we create a blank (and let the user know about it) if (!new File("HighScores.dat").exists()) { // This object matrix actually stores the information of the high scores list Object[][] highScores = new Object[10][3]; // We fill the high scores list with blank entries: #. " " 0 for (int i = 0; i < highScores.length; i++) { highScores[i][0] = (i + 1) + "."; highScores[i][1] = " "; highScores[i][2] = 0; } // This actually writes and makes the high scores file try { ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("HighScores.dat")); o.writeObject(highScores); o.close(); } catch (IOException e) { e.printStackTrace(); } } // We read the file to check if we have a new high score, and then rewrite the highscore // This is done even if we didn't previously have a high scores list try { ObjectInputStream o = new ObjectInputStream(new FileInputStream("HighScores.dat")); // The object matrix does the same as the previous one. // Here we just take what we read from the HighScores.dat to the Object[][] HighScores. Object[][] highScores = (Object[][]) o.readObject(); // Then we start searching for an entry for which the score is smaller than the achieved score for (int i = 0; i < highScores.length; i++) { if ((Integer) highScores[i][2] < score) { // Once found we start to move entries, which are below the score we had, downwards. // I.e. 10. becomes whatever 9. was. 9. becomes what 8. was etc... for (int j = 9; j > i; j--) { highScores[j][0] = (j + 1) + "."; highScores[j][1] = highScores[j - 1][1]; highScores[j][2] = highScores[j - 1][2]; } // Then we write the score and the name we just got to the correct place highScores[i][0] = (i + 1) + "."; highScores[i][1] = name; highScores[i][2] = score; // And break the loop. /*Maybe this could be avoided somehow? I haven't been able to come up with an easy way yet.*/ break; } } try { // And finally we overwrite the HighScores.dat with our highScores object matrix ObjectOutputStream n = new ObjectOutputStream(new FileOutputStream("HighScores.dat")); n.writeObject(highScores); n.close(); } catch (IOException e) { e.printStackTrace(); } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } }
/** * Creates a new configuration method * * @param backMenu Menu instance used to control its music */ public Config(Menu backMenu) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); try (ObjectInputStream entradaObjs = new ObjectInputStream(new FileInputStream("Saves" + File.separator + "config.dat"))) { configSave = (float[]) entradaObjs.readObject(); } } catch (ClassNotFoundException | IOException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { System.out.println(e.getMessage()); } this.setSize(800, 300); this.add(fondo = new Fondo("fondoConfig.png")); this.setUndecorated(true); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setIconImage(Toolkit.getDefaultToolkit().getImage("Images" + File.separator + "logo.png")); this.backMenu = backMenu; icon = new ImageIcon("Images/brick.png"); fondo.setLayout(new BorderLayout()); returns = CustomButton.createButton("Go Back", this.getGraphicsConfiguration(), 18); returns.addActionListener(this); musicSlider = new JSlider(JSlider.HORIZONTAL, -30, 0, (int) configSave[0]); musicSlider.setOpaque(false); musicSlider.setMajorTickSpacing(10); musicSlider.setMinorTickSpacing(2); musicSlider.setPaintTicks(true); volumeSlider = new JSlider(JSlider.HORIZONTAL, -30, 0, (int) configSave[1]); volumeSlider.setOpaque(false); volumeSlider.setMajorTickSpacing(10); volumeSlider.setMinorTickSpacing(2); volumeSlider.setPaintTicks(true); fondo.add(returns, BorderLayout.SOUTH); fondo.add(musicSlider, BorderLayout.NORTH); fondo.add(volumeSlider, BorderLayout.CENTER); try { this.getContentPane() .setCursor( Toolkit.getDefaultToolkit() .createCustomCursor( CompatibleImage.toCompatibleImage( ImageIO.read(new File("Images" + File.separator + "cursor.png"))), new Point(0, 0), "cursor")); } catch (IOException ex) { Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex); } this.setVisible(true); }
public Atm() // constructor // sets the customer array to that found in the file if the file exists { try { // Set cross-platform Java L&F (also called "Metal") UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } if (logFile.exists()) { try { adminLogs = returnLog("p2.log"); if (!adminLogs.isEmpty()) { // there may be customer data but perhaps no transactions yet. ArrayList<Integer> allTransactions = new ArrayList<>(100); for (AdminLog a : adminLogs) { int transaction = a.getTransactionID(); ; allTransactions.add(transaction); } transaction_counter = Collections.max(allTransactions) + 1; } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } } if (DBfile.exists()) { try { cust = returnSavedData("p2.dat"); // sets the starting ID to the max of all the IDs stored in the file. allIDs = new ArrayList<Integer>(100); ArrayList<Integer> allAccounts = new ArrayList<>(); for (Customer customer : cust) { String idString = customer.returnID(); int id = Integer.parseInt(idString); allIDs.add(id); int accountNumber = customer.returnMaxAccount(); allAccounts.add(accountNumber); } // checks to see if the customer has even made any accounts, if not, max accounts will be // set at 1001 if (starting_account_number != 1) { starting_account_number = Collections.max(allAccounts) + 1; } starting_customer_number = Collections.max(allIDs) + 1; } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } } else { cust = new ArrayList<>(100); // creates the file if it does not exist try { saveFile(cust, DBfile); } catch (IOException e) { e.printStackTrace(); } } interest_rate = 5; }