Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.10 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Container;
  3. import java.awt.Dimension;
  4. import java.awt.FlowLayout;
  5. import java.awt.GridLayout;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.io.File;
  9. import java.io.FileNotFoundException;
  10. import java.io.FileWriter;
  11. import java.io.IOException;
  12. import java.io.PrintWriter;
  13. import java.util.Scanner;
  14.  
  15. import javax.swing.BorderFactory;
  16. import javax.swing.BoxLayout;
  17. import javax.swing.ButtonGroup;
  18. import javax.swing.JButton;
  19. import javax.swing.JComboBox;
  20. import javax.swing.JFrame;
  21. import javax.swing.JLabel;
  22. import javax.swing.JOptionPane;
  23. import javax.swing.JPanel;
  24. import javax.swing.JRadioButton;
  25. import javax.swing.JTextField;
  26.  
  27. public class GUI_Driver extends JFrame {
  28.  
  29. private static final long serialVersionUID = 1L;
  30. private JTextField jtfFName, jtfMName, jtfSName, jtfDOB, jtfSSN, jtfSerialNo;// ,
  31. // jtfSearch
  32. private JRadioButton jrbMale, jrbFemale;
  33. private JComboBox<String> jcbSelect, jcbYear;
  34. private Container myContents;
  35. private JButton jGenerate, jUpdate, jCancel; // , jRemove, jSearch
  36. private ActionHandler buttonAction;
  37. private driver[] driver;
  38. private int tracker, index;
  39. private PrintWriter printToFile;
  40. private String carNum;
  41.  
  42. GUI_Driver(String carNum) {
  43.  
  44. super("Driver information");
  45.  
  46. this.carNum = carNum;
  47.  
  48. configureFrame();
  49. initialiseInstances();
  50. designInterface();
  51.  
  52. }
  53.  
  54. private void configureFrame() {
  55.  
  56. this.setSize(600, 400);
  57. this.setLocationRelativeTo(null);
  58. this.setResizable(false);
  59. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  60. myContents = this.getContentPane();
  61. }
  62.  
  63. private void initialiseInstances() {
  64.  
  65. buttonAction = new ActionHandler();
  66.  
  67. jtfFName = new JTextField(10);
  68. jtfMName = new JTextField(10);
  69. jtfSName = new JTextField(10);
  70. jtfDOB = new JTextField(10);
  71. jtfSSN = new JTextField(10);
  72. // jtfSearch = new JTextField(10);
  73.  
  74. jtfSerialNo = new JTextField(10);
  75. jtfSerialNo.setText(carNum);
  76.  
  77. jrbMale = new JRadioButton("Male");
  78. jrbMale.addActionListener(buttonAction);
  79.  
  80. jrbFemale = new JRadioButton("Female");
  81. jrbFemale.addActionListener(buttonAction);
  82.  
  83. jcbSelect = new JComboBox<String>();
  84. jcbSelect.addItem("Select");
  85. jcbSelect.addItem("Car");
  86. jcbSelect.addItem("Motorbike");
  87. jcbSelect.addItem("Truck");
  88. jcbSelect.addItem("Van");
  89. jcbSelect.setSelectedIndex(0);
  90. jcbSelect.setName("Type of Licence");
  91.  
  92. jcbYear = new JComboBox<String>();
  93. for (int i = 2018; i > 1900; i--) {
  94. jcbYear.addItem(" " + i);
  95. }
  96. jcbYear.setSelectedIndex(0);
  97. jcbYear.setName("Year of Issue");
  98.  
  99. jGenerate = new JButton("Update");
  100. jGenerate.addActionListener(buttonAction);
  101.  
  102. jUpdate = new JButton("Clear");
  103. jUpdate.addActionListener(buttonAction);
  104.  
  105. jCancel = new JButton("CANCEL");
  106. jCancel.addActionListener(buttonAction);
  107.  
  108. // jRemove = new JButton("Remove Driver");
  109. // jRemove.addActionListener(buttonAction);
  110.  
  111. // jSearch = new JButton("Search for Driver");
  112. // jSearch.addActionListener(buttonAction);
  113.  
  114. driver = new driver[100];
  115. tracker = 0;
  116. index = -1;
  117.  
  118. ButtonGroup group = new ButtonGroup();
  119. group.add(jrbMale);
  120. group.add(jrbFemale);
  121.  
  122. }
  123.  
  124. private void designInterface() {
  125.  
  126. JPanel p1 = new JPanel();
  127. p1.setLayout(new GridLayout(8, 1));
  128. p1.add(new JLabel("First Name"));
  129. p1.add(new JLabel("Middle Name"));
  130. p1.add(new JLabel("Sur Name"));
  131. p1.add(new JLabel("Date of Birth"));
  132. p1.add(new JLabel("SSN"));
  133. p1.add(new JLabel("Gender"));
  134. p1.add(new JLabel("Licence Type"));
  135. p1.add(new JLabel("Year of Issue"));
  136.  
  137. JPanel p2 = new JPanel();
  138. p2.setLayout(new FlowLayout());
  139. p2.add(jrbMale);
  140. p2.add(jrbFemale);
  141.  
  142. JPanel p3 = new JPanel();
  143. p3.setLayout(new GridLayout(2, 1));
  144. p3.add(jcbSelect);
  145. p3.add(jcbYear);
  146.  
  147. JPanel p4 = new JPanel();
  148. p4.setLayout(new GridLayout(8, 1));
  149. p4.add(jtfFName);
  150. p4.add(jtfMName);
  151. p4.add(jtfSName);
  152. p4.add(jtfDOB);
  153. p4.add(jtfSSN);
  154. p4.add(p2);
  155. p4.add(p3);
  156.  
  157. JPanel p5 = new JPanel();
  158. p5.setLayout(new BorderLayout());
  159. p5.add(p1, BorderLayout.WEST);
  160. p5.add(p4, BorderLayout.EAST);
  161.  
  162. p5.setBorder(BorderFactory.createTitledBorder(" "));
  163.  
  164. JPanel p7 = new JPanel();
  165. p7.setLayout(new FlowLayout());
  166. p7.add(new JLabel(("Serial No.")));
  167. p7.add(jtfSerialNo);
  168.  
  169. // JPanel search = new JPanel();
  170. // search.setLayout(new FlowLayout());
  171. // search.add(new JLabel("Search for Driver"));
  172. // search.add(jtfSearch);
  173.  
  174. JPanel p8 = new JPanel();
  175. p8.setLayout(new GridLayout(3, 1));
  176. p8.add(jGenerate);
  177. // p8.add(jSearch);
  178. // p8.add(search);
  179.  
  180. JPanel p10 = new JPanel();
  181. p10.setLayout(new BoxLayout(p10, BoxLayout.PAGE_AXIS));
  182. p10.add(p7);
  183. p10.add(p8);
  184. p10.setPreferredSize(new Dimension(200, 100));
  185.  
  186. JPanel p11 = new JPanel();
  187. p11.setLayout(new FlowLayout());
  188. // p11.add(jRemove);
  189. p11.add(jUpdate);
  190. p11.add(jCancel);
  191.  
  192. p11.setBorder(BorderFactory.createTitledBorder(" "));
  193.  
  194. JPanel p12 = new JPanel();
  195. p12.setLayout(new BorderLayout());
  196. p12.add(p5, BorderLayout.WEST);
  197. p12.add(p10, BorderLayout.EAST);
  198. p12.add(p11, BorderLayout.SOUTH);
  199.  
  200. myContents.add(p12);
  201. }
  202.  
  203. public void writeToFile(JTextField FName, JTextField MName, JTextField SName, JTextField DOB, JTextField SSN,
  204. JRadioButton jrbmale, JRadioButton jrbFemale, JComboBox<String> jcbSelect, JComboBox<String> jcbYear,
  205. JTextField SNo) {
  206.  
  207. FileWriter write;
  208. File myDriveFile = new File("/Users/VictoriaJansson/Desktop/DriverFile.txt");
  209.  
  210. try {
  211. write = new FileWriter(myDriveFile, true);
  212.  
  213. printToFile = new PrintWriter(write);
  214. printToFile.write(FName.getText());
  215. printToFile.write(", ");
  216. printToFile.write(MName.getText());
  217. printToFile.write(", ");
  218. printToFile.write(SName.getText());
  219. printToFile.write(", ");
  220. printToFile.write(DOB.getText());
  221. printToFile.write(", ");
  222. printToFile.write(SSN.getText());
  223. printToFile.write(", ");
  224.  
  225. if (jrbFemale.isSelected()) {
  226. printToFile.write(jrbFemale.getText());
  227. printToFile.write(", ");
  228. } else {
  229. printToFile.write(jrbMale.getText());
  230. printToFile.write(", ");
  231. }
  232. printToFile.write(jcbSelect.getSelectedItem().toString());
  233. printToFile.write(", ");
  234.  
  235. printToFile.write(jcbYear.getSelectedItem().toString());
  236. printToFile.write(", ");
  237.  
  238. printToFile.println();
  239. printToFile.close();
  240.  
  241. } catch (IOException e) {
  242. // TODO Auto-generated catch block
  243. e.printStackTrace();
  244. }
  245. }
  246.  
  247. public void addDriver() {
  248.  
  249. String fName = jtfFName.getText().toString();
  250. String mName = jtfMName.getText().toString();
  251. String sName = jtfSName.getText().toString();
  252.  
  253. int dob = Integer.parseInt(jtfDOB.getText().toString());
  254. int ssn = Integer.parseInt(jtfSSN.getText().toString());
  255. int sno = Integer.parseInt(jtfSerialNo.getText().toString());
  256.  
  257. driver[tracker] = new driver(fName, mName, sName, dob, ssn, sno);
  258. JOptionPane.showMessageDialog(null, "You have now added a driver", "New Driver",
  259. JOptionPane.INFORMATION_MESSAGE);
  260. tracker++;
  261. }
  262.  
  263. public void clearRButton() {
  264.  
  265. ButtonGroup group = new ButtonGroup();
  266. group.add(jrbMale);
  267. group.add(jrbFemale);
  268.  
  269. group.clearSelection();
  270.  
  271. }
  272.  
  273. public int searchDriver(int num) {
  274.  
  275. for (int i = 0; i < tracker; i++) {
  276. if (driver[i].getsno() == num)
  277. index = i;
  278. }
  279. return index;
  280. }
  281.  
  282. public int removeDriver(int num) {
  283.  
  284. if (tracker == 0) {
  285. JOptionPane.showMessageDialog(null, "There are no drivers to remove", "No Drivers",
  286. JOptionPane.INFORMATION_MESSAGE);
  287.  
  288. } else if (searchDriver(num) == -1) {
  289. JOptionPane.showMessageDialog(null, "The Driver was not found", "Unknown Driver",
  290. JOptionPane.INFORMATION_MESSAGE);
  291.  
  292. } else {
  293. index = searchDriver(num);
  294. }
  295.  
  296. driver[index] = driver[tracker - 1];
  297. driver[tracker - 1] = new driver();
  298. tracker--;
  299.  
  300. FileWriter write;
  301. File myDriverFile = new File("/Users/VictoriaJansson/Desktop/DriverFile.txt");
  302.  
  303. try {
  304. write = new FileWriter(myDriverFile, false);
  305. printToFile = new PrintWriter(write);
  306.  
  307. for (int i = 0; i < tracker; i++) {
  308.  
  309. driver x = driver[i];
  310.  
  311. printToFile.write(x.getfName());
  312. printToFile.write(",");
  313. printToFile.write(x.getmName());
  314. printToFile.write(",");
  315. printToFile.write(x.getsName());
  316. printToFile.write(",");
  317. printToFile.write(x.getssn());
  318. printToFile.write(",");
  319. printToFile.write(x.getdob());
  320. printToFile.write(",");
  321. printToFile.write(x.getsno());
  322.  
  323. printToFile.println();
  324.  
  325. }
  326.  
  327. printToFile.close();
  328.  
  329. } catch (IOException e) {
  330. // TODO Auto-generated catch block
  331. e.printStackTrace();
  332. }
  333.  
  334. JOptionPane.showMessageDialog(null, "The Driver is deleted", "No Drivers", JOptionPane.INFORMATION_MESSAGE);
  335. return tracker;
  336. }
  337.  
  338. public void getFile() {
  339.  
  340. Scanner readData = null;
  341. String getDriver = "/Users/VictoriaJansson/Desktop/DriverFile.txt";
  342. File myFile = new File(getDriver);
  343.  
  344. try {
  345.  
  346. readData = new Scanner(myFile);
  347. while (readData.hasNextLine()) {
  348.  
  349. String[] lineCont = readData.nextLine().split(",");
  350.  
  351. driver[tracker] = new driver(lineCont[0], lineCont[1], lineCont[2], Integer.parseInt(lineCont[3]),
  352. Integer.parseInt(lineCont[4]), Integer.parseInt(lineCont[5]));
  353. // System.out.println(driver[tracker].toString());
  354. tracker++;
  355. }
  356.  
  357. // FileWriter writeToFile = new FileWriter(myFile, true);
  358. // PrintWriter printData = new PrintWriter(writeToFile);
  359. // readData.close();
  360. // printData.close();
  361.  
  362. } catch (FileNotFoundException e) {
  363.  
  364. System.out.println("File not found");
  365.  
  366. } catch (IOException e) {
  367.  
  368. System.out.println("File cannot be read ");
  369. }
  370. }
  371.  
  372. public class ActionHandler implements ActionListener {
  373.  
  374. @Override
  375.  
  376. public void actionPerformed(ActionEvent e) {
  377.  
  378. String strAction = e.getActionCommand().toString();
  379. switch (strAction) {
  380.  
  381. case "Update":
  382.  
  383. addDriver();
  384. writeToFile(jtfFName, jtfMName, jtfSName, jtfDOB, jtfSSN, jrbMale, jrbFemale, jcbSelect, jcbYear,
  385. jtfSerialNo);
  386.  
  387. break;
  388.  
  389. case "Clear":
  390.  
  391. jtfFName.setText("");
  392. jtfMName.setText("");
  393. jtfSName.setText("");
  394. jtfDOB.setText("");
  395. jtfSSN.setText("");
  396. jtfSerialNo.setText("");
  397.  
  398. clearRButton();
  399.  
  400. jcbYear.setSelectedIndex(0);
  401. jcbSelect.setSelectedIndex(0);
  402.  
  403. break;
  404.  
  405. case "Remove Driver":
  406. int hej = -1;
  407.  
  408. writeToFile(jtfFName, jtfMName, jtfSName, jtfDOB, jtfSSN, jrbMale, jrbFemale, jcbSelect, jcbYear,
  409. jtfSerialNo);
  410.  
  411. int sno = Integer.parseInt(jtfSerialNo.getText().toString());
  412.  
  413. hej = removeDriver(sno);
  414.  
  415. break;
  416.  
  417. case "CANCEL":
  418.  
  419. JOptionPane.showMessageDialog(null, "You chose to CANCEL", "Close", JOptionPane.INFORMATION_MESSAGE);
  420. System.exit(0);
  421. break;
  422. }
  423. }
  424.  
  425. public class comboHandler implements ActionListener {
  426.  
  427. @Override
  428. public void actionPerformed(ActionEvent event) {
  429.  
  430. @SuppressWarnings("unchecked")
  431. String chStr = (String) (((JComboBox<String>) event.getSource()).getSelectedItem());
  432. System.out.println(chStr);
  433.  
  434. }
  435. }
  436. }
  437. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement