import java.awt.BorderLayout; import java.awt.GridLayout; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SwingConstants; public class HighScore { ArrayList<String> arylist = new ArrayList<String>(); static ArrayList<String> user = new ArrayList<String>(); static ArrayList<String> score = new ArrayList<String>(); static ArrayList<Integer> scoreInt = new ArrayList<Integer>(); static int x; public static String[] readFrom() throws IOException { String fileName = "highScore.txt"; String content = null; File file = new File(fileName); FileReader reader = null; try { reader = new FileReader(file); char[] chars = new char[(int) file.length()]; reader.read(chars); content = new String(chars); reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { reader.close(); } } String[] words = content.split("\\s+"); // for (int i = 0; i < words.length; i++) { // System.out.println(words[i]); // } return words; } public static void writeTo() { try { String filename = "highScore.txt"; FileWriter fw = new FileWriter(filename, true); PrintWriter pw = new PrintWriter(filename); pw.print(" "); for (int i = 0; i < user.size(); i++) { fw.write(user.get(i) + " " + scoreInt.get(i) + "\n"); } // fw.write(a + "\n"); fw.close(); } catch (IOException ioe) { System.err.println("IOException: " + ioe.getMessage()); } } public static void creatingArrays() throws IOException { String[] newArr = readFrom(); for (int i = 0; i < newArr.length; i++) { if (i % 2 == 0) { user.add(newArr[i]); } if (i % 2 == 1) { score.add(newArr[i]); } } // for(int i = 0; i < user.size(); i++){ // System.out.println(user.get(i)); // // } // // for(int i = 0; i < score.size(); i++){ // System.out.println(score.get(i)); // // } for (int i = 0; i < score.size(); i++) { scoreInt.add(Integer.parseInt(score.get(i))); } // for (int i = 0; i < score.size(); i++) { // System.out.println(scoreInt.get(i)); // // } } public int returnLowest() { this.x = scoreInt.get(scoreInt.size()); return scoreInt.get(scoreInt.size()); } public static boolean isHigh(int compare) { if (compare > x) { return true; } else { return false; } } public static void sortInt() { for (int i = 0; i < scoreInt.size(); i++) { for (int j = 0; j < scoreInt.size() - 1; j++) { if (scoreInt.get(j) < scoreInt.get(j + 1)) { int temp = 0; String tempS = ""; temp = scoreInt.get(j); tempS = user.get(j); scoreInt.set(j, scoreInt.get(j + 1)); user.set(j, user.get(j + 1)); scoreInt.set(j + 1, temp); user.set(j + 1, tempS); } } } // random text for (int i = 0; i < scoreInt.size(); i++) { System.out.println(user.get(i) + " " + scoreInt.get(i)); } } public static void highScoreFrame() { String[] columnNames = { "User Name", "Time" }; JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Object rowData[][] = { { user.get(0),scoreInt.get(0)}, { user.get(1),scoreInt.get(1)}, { user.get(2),scoreInt.get(2)}, { user.get(3),scoreInt.get(3)}, { user.get(4),scoreInt.get(4)}, { user.get(5),scoreInt.get(5)}, { user.get(6),scoreInt.get(6)}, { user.get(7),scoreInt.get(7)}, { user.get(8),scoreInt.get(8)}, { user.get(9),scoreInt.get(9)}, { user.get(10),scoreInt.get(10)}, { user.get(11),scoreInt.get(11)}, { user.get(12),scoreInt.get(12)}, { user.get(13),scoreInt.get(13)}, { user.get(14),scoreInt.get(14)}, { user.get(15),scoreInt.get(15)}, { user.get(16),scoreInt.get(16)}, { user.get(17),scoreInt.get(17)}, { user.get(18),scoreInt.get(18)}, { user.get(19),scoreInt.get(19)}}; JTable table = new JTable(rowData, columnNames); JScrollPane scrollPane = new JScrollPane(table); frame.add(scrollPane, BorderLayout.CENTER); frame.setSize(300, 150); frame.setVisible(true); } public HighScore(int nameScore) throws IOException { readFrom(); creatingArrays(); sortInt(); int nameScored = nameScore; if (isHigh(nameScored)) { JPanel panel = new JPanel(new BorderLayout(5, 5)); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel label = new JPanel(new GridLayout(0, 1, 2, 2)); label.add(new JLabel("User Name", SwingConstants.RIGHT)); JPanel controls = new JPanel(new GridLayout(0, 1, 2, 2)); JTextField username = new JTextField(); controls.add(username); panel.add(controls, BorderLayout.CENTER); JOptionPane.showMessageDialog(frame, panel, "add user name", JOptionPane.QUESTION_MESSAGE); user.add(username.getText()); scoreInt.add(nameScored); sortInt(); user.remove(user.size() - 1); scoreInt.remove(scoreInt.size() - 1); writeTo(); highScoreFrame(); } } }