Advertisement
Crowley2012

GUI.java

Oct 19th, 2014
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.56 KB | None | 0 0
  1. package crowleysean;
  2.  
  3. import javax.swing.*;
  4. import java.awt.event.*;
  5. import java.awt.*;
  6.  
  7. /**************************************************
  8.  * This class controls all aspects of the GUI
  9.  *
  10.  * @author Sean Crowley
  11.  **************************************************/
  12. public class GUI extends Thread {
  13.  
  14.     /** Frame of GUI **/
  15.     private JFrame frame;
  16.  
  17.     /** Text area for feedback **/
  18.     public JTextArea results;
  19.  
  20.     /** File menu items **/
  21.     private JMenuBar menus;
  22.     private JMenu fileMenu;
  23.     private JMenuItem browseProfile;
  24.     private JMenuItem browseSteam;
  25.     private JMenuItem clearServers;
  26.     private JMenuItem quit;
  27.  
  28.     /** Server menu items **/
  29.     private JMenu serverMenu;
  30.     private JMenuItem serverStart;
  31.     private JMenuItem serverStop;
  32.     private JMenuItem addServers;
  33.     private JMenuItem removeServers;
  34.     private JMenuItem serverDisplay;
  35.  
  36.     /** Launch menu items **/
  37.     private JMenu launch;
  38.     private JMenuItem params;
  39.     private JMenuItem runDayz;
  40.  
  41.     /** Help menu items **/
  42.     private JMenu helpMenu;
  43.     private JMenuItem help;
  44.     private JMenuItem about;
  45.  
  46.     /** Check object **/
  47.     private static Check c;
  48.  
  49.     /**************************************************
  50.      * Run method will setup the GUI
  51.      **************************************************/
  52.     public synchronized void run() {
  53.  
  54.         // New check thread
  55.         c = new Check();
  56.         c.checkFiles();
  57.         c.setUser();
  58.         c.setDate();
  59.  
  60.         // Frame
  61.         frame = new JFrame("DayZ Server Saver");
  62.  
  63.         // Menu bar
  64.         menus = new JMenuBar();
  65.  
  66.         // File menu
  67.         fileMenu = new JMenu("File");
  68.         browseProfile = new JMenuItem("DayZ Profile Browse");
  69.         browseSteam = new JMenuItem("Steam Dir Browse");
  70.         clearServers = new JMenuItem("Clear Saved");
  71.         quit = new JMenuItem("Quit");
  72.  
  73.         // Server menu
  74.         serverMenu = new JMenu("Servers");
  75.         serverStart = new JMenuItem("Start");
  76.         serverStop = new JMenuItem("Stop");
  77.         serverDisplay = new JMenuItem("Display");
  78.         addServers = new JMenuItem("Add");
  79.         removeServers = new JMenuItem("Remove");
  80.  
  81.         // Launch menu
  82.         launch = new JMenu("Launch");
  83.         params = new JMenuItem("Parameters");
  84.         runDayz = new JMenuItem("DayZ");
  85.  
  86.         // Help menu
  87.         helpMenu = new JMenu("Help");
  88.         help = new JMenuItem("How To Use");
  89.         about = new JMenuItem("About");
  90.  
  91.         // Establish listener
  92.         ButtonListener listener = new ButtonListener();
  93.  
  94.         // Add listener to buttons
  95.         quit.addActionListener(listener);
  96.         clearServers.addActionListener(listener);
  97.         help.addActionListener(listener);
  98.         about.addActionListener(listener);
  99.         serverStart.addActionListener(listener);
  100.         serverStop.addActionListener(listener);
  101.         serverDisplay.addActionListener(listener);
  102.         runDayz.addActionListener(listener);
  103.         addServers.addActionListener(listener);
  104.         removeServers.addActionListener(listener);
  105.         browseProfile.addActionListener(listener);
  106.         browseSteam.addActionListener(listener);
  107.         params.addActionListener(listener);
  108.  
  109.         // Results text area
  110.         results = new JTextArea(10, 20);
  111.         JScrollPane scrollPane = new JScrollPane(results);
  112.         results.setEditable(false);
  113.  
  114.         // Add file menu items
  115.         fileMenu.add(browseProfile);
  116.         fileMenu.add(browseSteam);
  117.         fileMenu.addSeparator();
  118.         fileMenu.add(clearServers);
  119.         fileMenu.addSeparator();
  120.         fileMenu.add(quit);
  121.  
  122.         // Add help menu items
  123.         helpMenu.add(help);
  124.         helpMenu.add(about);
  125.  
  126.         // Add server menu items
  127.         serverMenu.add(serverStart);
  128.         serverMenu.add(serverStop);
  129.         serverMenu.addSeparator();
  130.         serverMenu.add(addServers);
  131.         serverMenu.add(removeServers);
  132.         serverMenu.addSeparator();
  133.         serverMenu.add(serverDisplay);
  134.  
  135.         // Add launch menu items
  136.         launch.add(runDayz);
  137.         launch.add(params);
  138.  
  139.         // Add to menu bar
  140.         menus.add(fileMenu);
  141.         menus.add(serverMenu);
  142.         menus.add(launch);
  143.         menus.add(helpMenu);
  144.  
  145.         // Add items to frame
  146.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  147.         frame.setJMenuBar(menus);
  148.         frame.add(scrollPane);
  149.         frame.pack();
  150.         frame.setSize(new Dimension(500, 375));
  151.         frame.setVisible(true);
  152.     }
  153.  
  154.     /**************************************************
  155.      * ButtonListener method will provide action to the buttons
  156.      **************************************************/
  157.     private class ButtonListener implements ActionListener {
  158.  
  159.         public void actionPerformed(ActionEvent e) {
  160.  
  161.             // Starts adding servers to list
  162.             if (e.getSource() == serverStart) {
  163.                 if (c.getProfile() != null) {
  164.                     results.setText("Current Servers\n");
  165.                     if (!c.isAlive()) {
  166.                         c.start();
  167.                     } else {
  168.                         c.setRunning(true);
  169.                     }
  170.                 } else {
  171.                     results.setText("Current Servers\n");
  172.                     if (!c.isAlive()) {
  173.                         c.start();
  174.                     } else {
  175.                         c.setRunning(true);
  176.                     }
  177.                 }
  178.             }
  179.  
  180.             // Stops adding server to list
  181.             if (e.getSource() == serverStop) {
  182.                 results.append("\nStopped");
  183.                 c.setRunning(false);
  184.             }
  185.  
  186.             // Displays saved servers
  187.             if (e.getSource() == serverDisplay) {
  188.                 c.display();
  189.             }
  190.  
  191.             // Clears saved servers
  192.             if (e.getSource() == clearServers) {
  193.                 c.resetSave();
  194.             }
  195.  
  196.             // Sets DayZ Profile directory
  197.             if (e.getSource() == browseProfile) {
  198.                 c.browseProfile();
  199.                 appendResults(c.getProfileDir().toString() + "\n");
  200.             }
  201.  
  202.             // Sets Steam directory
  203.             if (e.getSource() == browseSteam) {
  204.                 c.browseSteam();
  205.                 appendResults(c.getSteamDir().toString() + "\n");
  206.             }
  207.  
  208.             // Launches DayZ
  209.             if (e.getSource() == runDayz) {
  210.                 c.display();
  211.                 c.launch();
  212.             }
  213.  
  214.             // Sets DayZ launch parameters
  215.             if (e.getSource() == params) {
  216.                 c.launchParameters();
  217.             }
  218.  
  219.             // Removes server from list
  220.             if (e.getSource() == removeServers) {
  221.                 c.display();
  222.                 c.removeServer();
  223.             }
  224.  
  225.             // Adds custom server to list
  226.             if (e.getSource() == addServers) {
  227.                 c.addServer();
  228.             }
  229.  
  230.             // Displays information on how to use program
  231.             if (e.getSource() == help) {
  232.                 c.howTo();
  233.             }
  234.  
  235.             // About me
  236.             if (e.getSource() == about) {
  237.                 c.about();
  238.             }
  239.  
  240.             // Quits the program
  241.             if (e.getSource() == quit) {
  242.                 System.exit(1);
  243.             }
  244.         }
  245.     }
  246.  
  247.     /**************************************************
  248.      * Sets the next area
  249.      **************************************************/
  250.     public void setResults(String s) {
  251.         results.setText(s);
  252.     }
  253.  
  254.     /**************************************************
  255.      * Appends to the text area
  256.      **************************************************/
  257.     public void appendResults(String s) {
  258.         results.append(s);
  259.     }
  260.  
  261.     /**************************************************
  262.      * Returns the number of lines in text area
  263.      **************************************************/
  264.     public int getLines() {
  265.         return results.getLineCount();
  266.     }
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement