Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.22 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.KeyEvent;
  5. import java.awt.event.KeyListener;
  6. import java.io.File;
  7. import java.io.IOException;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Date;
  11. import java.util.concurrent.TimeUnit;
  12.  
  13. import javax.imageio.ImageIO;
  14. import javax.swing.*;
  15. import javax.swing.border.*;
  16. import javax.swing.text.DateFormatter;
  17.  
  18. public class Main extends JFrame implements ActionListener, KeyListener{
  19. JPanel panelHeaderLogin, panelContentLogin, panelFooterLogin, panelHeaderRegister, panelContentRegister, panelFooterRegister, panelGender, panelButton;
  20. JLabel lblTitle, lblEmail, lblPassword, lblName, lblConfirmPassword, lblGender, lblDOB, lblImage;
  21. JTextField txtEmail, txtName;
  22. JPasswordField txtPassword, txtConfirmPassword;
  23. JButton btnLogin, btnRegister, btnGetStarted, btnCancel;
  24. JRadioButton radioMale, radioFemale;
  25. JCheckBox cbTerms;
  26. ButtonGroup bgGender;
  27. JFrame login, register, adminForm, userForm;
  28. JSpinner spDOB;
  29. Connect db;
  30.  
  31. void login() {
  32. login = new JFrame();
  33.  
  34. panelHeaderLogin = new JPanel();
  35. panelContentLogin = new JPanel();
  36. panelFooterLogin = new JPanel();
  37.  
  38. // header
  39. lblTitle = new JLabel("Login");
  40. //lblTitle.setForeground(Color.BLACK);
  41. panelHeaderLogin.add(lblTitle);
  42.  
  43. // content
  44. panelContentLogin.setLayout(new GridLayout(2, 2));
  45. panelContentLogin.setBorder(new EmptyBorder(0,10,0,10));
  46.  
  47. lblEmail = new JLabel("Email");
  48. txtEmail = new JTextField();
  49.  
  50. lblPassword = new JLabel("Password");
  51. txtPassword = new JPasswordField();
  52.  
  53. panelContentLogin.add(lblEmail);
  54. panelContentLogin.add(txtEmail);
  55. panelContentLogin.add(lblPassword);
  56. panelContentLogin.add(txtPassword);
  57.  
  58. //footer
  59. btnLogin = new JButton("Login");
  60. btnRegister = new JButton("Register");
  61. panelFooterLogin.add(btnLogin);
  62. panelFooterLogin.add(btnRegister);
  63.  
  64. login.setSize(400, 150);
  65. login.setTitle("Login");
  66.  
  67. login.add(panelHeaderLogin, BorderLayout.NORTH);
  68. login.add(panelContentLogin, BorderLayout.CENTER);
  69. login.add(panelFooterLogin, BorderLayout.SOUTH);
  70. login.setLocationRelativeTo(null);
  71. login.setDefaultCloseOperation(EXIT_ON_CLOSE);
  72. login.setVisible(true);
  73. login.setResizable(false);
  74.  
  75. btnRegister.addActionListener(this);
  76.  
  77. }
  78.  
  79. void register() {
  80. register = new JFrame();
  81.  
  82. panelHeaderRegister = new JPanel();
  83. panelContentRegister = new JPanel();
  84. panelFooterRegister = new JPanel();
  85.  
  86. // header
  87. lblTitle = new JLabel("Register");
  88. panelHeaderRegister.add(lblTitle);
  89.  
  90. // content
  91. panelContentRegister.setLayout(new GridLayout(6, 2));
  92. panelContentRegister.setBorder(new EmptyBorder(0,10,0,10));
  93.  
  94. lblName = new JLabel("Name : ");
  95. txtName = new JTextField();
  96. panelContentRegister.add(lblName);
  97. panelContentRegister.add(txtName);
  98.  
  99. lblEmail = new JLabel("Email : ");
  100. txtEmail = new JTextField();
  101. panelContentRegister.add(lblEmail);
  102. panelContentRegister.add(txtEmail);
  103.  
  104. lblPassword = new JLabel("Password : ");
  105. txtPassword = new JPasswordField();
  106. panelContentRegister.add(lblPassword);
  107. panelContentRegister.add(txtPassword);
  108.  
  109. lblConfirmPassword = new JLabel("Confirm Password");
  110. txtConfirmPassword = new JPasswordField();
  111. panelContentRegister.add(lblConfirmPassword);
  112. panelContentRegister.add(txtConfirmPassword);
  113.  
  114. lblGender = new JLabel("Gender : ");
  115. radioMale = new JRadioButton("Male");
  116. radioFemale = new JRadioButton("Female");
  117. panelGender = new JPanel();
  118. panelGender.setLayout(new FlowLayout(FlowLayout.LEFT));
  119. panelGender.add(radioMale);
  120. panelGender.add(radioFemale);
  121. bgGender = new ButtonGroup();
  122. bgGender.add(radioMale);
  123. bgGender.add(radioFemale);
  124. panelContentRegister.add(lblGender);
  125. panelContentRegister.add(panelGender);
  126.  
  127. lblDOB = new JLabel("Date of Birth : ");
  128. SimpleDateFormat model = new SimpleDateFormat("yyyy-MM-dd");
  129. spDOB = new JSpinner(new SpinnerDateModel());
  130. spDOB.setEditor(new JSpinner.DateEditor(spDOB, model.toPattern()));
  131. panelContentRegister.add(lblDOB);
  132. panelContentRegister.add(spDOB);
  133.  
  134.  
  135. //footer
  136. panelFooterRegister.setLayout(new FlowLayout(FlowLayout.CENTER));
  137. panelFooterRegister.setBorder(new EmptyBorder(0,10,25,10));
  138.  
  139. cbTerms = new JCheckBox("I agree to terms and agreements");
  140. panelFooterRegister.add(cbTerms);
  141.  
  142. panelButton = new JPanel();
  143. btnGetStarted = new JButton("Get Started!");
  144. btnCancel = new JButton("Cancel");
  145. panelButton.add(btnGetStarted);
  146. panelButton.add(btnCancel);
  147. panelFooterRegister.add(panelButton);
  148.  
  149. register.setSize(400, 300);
  150. register.setTitle("Register Account");
  151.  
  152. register.add(panelHeaderRegister, BorderLayout.NORTH);
  153. register.add(panelContentRegister, BorderLayout.CENTER);
  154. register.add(panelFooterRegister, BorderLayout.SOUTH);
  155. register.setLocationRelativeTo(null);
  156. register.setDefaultCloseOperation(EXIT_ON_CLOSE);
  157. register.setVisible(true);
  158. register.setResizable(false);
  159.  
  160. btnCancel.addActionListener(this);
  161. btnGetStarted.addActionListener(this);
  162. }
  163.  
  164. void userForm() {
  165. userForm = new JFrame();
  166. JPanel userForm = new JPanel();
  167. JMenuBar bar;
  168. JMenu name, buy, transactionHistory;
  169. JMenuItem logout;
  170.  
  171. bar = new JMenuBar();
  172. bar.setFont(new Font("", Font.PLAIN, 12));
  173.  
  174. name = new JMenu("Nama user");
  175. logout = new JMenuItem("Logout");
  176. name.add(logout);
  177.  
  178. buy = new JMenu("Buy");
  179. transactionHistory = new JMenu("Transaction History");
  180.  
  181. bar.add(name);
  182. bar.add(buy);
  183. bar.add(transactionHistory);
  184. setJMenuBar(bar);
  185.  
  186. try {
  187. lblImage = new JLabel(new ImageIcon(ImageIO.read(new File("image.jpg"))));
  188. } catch (IOException e) {
  189. e.printStackTrace();
  190. }
  191. add(lblImage);
  192.  
  193. adminForm.setSize(1200, 800);
  194. adminForm.setLocationRelativeTo(null);
  195. adminForm.setDefaultCloseOperation(EXIT_ON_CLOSE);
  196. adminForm.setVisible(true);
  197. adminForm.setResizable(false);
  198. }
  199.  
  200. void adminForm() {
  201. adminForm = new JFrame();
  202.  
  203. JMenuBar bar;
  204. JMenu name, manage;
  205. JMenuItem logout, manage1, manage2, manage3;
  206. JMenu transactionHistory;
  207.  
  208. bar = new JMenuBar();
  209.  
  210. name = new JMenu("Nama user");
  211. name.setFont(new Font("", Font.PLAIN, 12));
  212. logout = new JMenuItem("Logout");
  213. logout.setFont(new Font("", Font.PLAIN, 12));
  214. name.add(logout);
  215.  
  216. manage = new JMenu("Manage");
  217. manage.setFont(new Font("", Font.PLAIN, 12));
  218. manage1 = new JMenuItem("Manage Clothing");
  219. manage1.setFont(new Font("", Font.PLAIN, 12));
  220. manage2 = new JMenuItem("Manage Clothing Type");
  221. manage2.setFont(new Font("", Font.PLAIN, 12));
  222. manage3 = new JMenuItem("Manage Transaction");
  223. manage3.setFont(new Font("", Font.PLAIN, 12));
  224. manage.add(manage1);
  225. manage.add(manage2);
  226. manage.add(manage3);
  227.  
  228. bar.add(name);
  229. bar.add(manage);
  230. setJMenuBar(bar);
  231.  
  232. try {
  233. lblImage = new JLabel(new ImageIcon(ImageIO.read(new File("image.jpg"))));
  234. } catch (IOException e) {
  235. e.printStackTrace();
  236. }
  237. add(lblImage);
  238.  
  239. adminForm.setSize(1200, 800);
  240. adminForm.setLocationRelativeTo(null);
  241. adminForm.setDefaultCloseOperation(EXIT_ON_CLOSE);
  242. adminForm.setVisible(true);
  243. adminForm.setResizable(false);
  244. }
  245.  
  246. public Main() {
  247. db = new Connect();
  248. login();
  249. // adminForm();
  250. }
  251.  
  252. public static void main(String[] args) {
  253. new Main();
  254. }
  255.  
  256. public String getGenderValue() {
  257. if(radioMale.isSelected())
  258. return "Male";
  259. else if(radioFemale.isSelected())
  260. return "Female";
  261. else
  262. return null;
  263. }
  264.  
  265. public static boolean isName(String name) {
  266. char chr[] = name.toCharArray();
  267.  
  268. for(char i : chr) {
  269. if(!Character.isLetter(i) && !Character.isSpace(i))
  270. return false;
  271. }
  272. if(name.startsWith(" "))
  273. return false;
  274. else if (name.endsWith(" "))
  275. return false;
  276. else if(name.length() == 0)
  277. return false;
  278. return true;
  279. }
  280.  
  281. public boolean isEmail(String text){
  282.  
  283. if(!text.endsWith(".com")){
  284. return false;
  285. }else if(!text.contains("@")){
  286. return false;
  287. }else if(text.startsWith("@") || text.startsWith(".")){
  288. return false;
  289. }else if(text.contains("@.")){
  290. return false;
  291. }else if(text.length() == 0) {
  292. return false;
  293. }
  294. return true;
  295. }
  296.  
  297. public boolean is18Yo(String dob) throws Exception{
  298. SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
  299.  
  300. Date dobDate = myFormat.parse(dob);
  301.  
  302. Date date = new Date();
  303. String crrDate = myFormat.format(date);
  304. Date currDate = myFormat.parse(crrDate);
  305. long diff = currDate.getTime() - dobDate.getTime();
  306.  
  307. return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS) > 6570;
  308. }
  309.  
  310. @Override
  311. public void actionPerformed(ActionEvent e) {
  312. if(e.getSource() == btnRegister) {
  313. login.dispose();
  314.  
  315. register();
  316. }else if(e.getSource() == btnCancel) {
  317. register.dispose();
  318.  
  319. login();
  320. }else if(e.getSource() == btnGetStarted) {
  321. String nameValue = txtName.getText();
  322. String emailValue = txtEmail.getText();
  323. String passwordValue = txtPassword.getText();
  324. String conPassValue = txtConfirmPassword.getText();
  325. boolean isPass = false;
  326. String genderValue = getGenderValue();
  327. boolean isPicked = false;
  328.  
  329. SimpleDateFormat formater = new SimpleDateFormat("dd MM yyyy");
  330. String dobValue = formater.format(spDOB.getValue());
  331.  
  332. if(conPassValue.equals(passwordValue))
  333. isPass = true;
  334.  
  335. if(radioMale.isSelected() || radioFemale.isSelected())
  336. isPicked = true;
  337.  
  338. if(nameValue == null || emailValue == null || passwordValue == null || conPassValue == null || genderValue == null)
  339. JOptionPane.showMessageDialog(this, "All fields must be filled!");
  340.  
  341. if(!isName(nameValue))
  342. JOptionPane.showMessageDialog(this, "Name must be alphabetic!");
  343.  
  344. if(!isEmail(emailValue))
  345. JOptionPane.showMessageDialog(this, "Email format is not valid!");
  346.  
  347. if(!isPass)
  348. JOptionPane.showMessageDialog(this, "Password confirmation should be the same as Password!");
  349.  
  350. if(!isPicked)
  351. JOptionPane.showMessageDialog(this, "Gender must be chosen!");
  352.  
  353. try {
  354. if(!is18Yo(dobValue))
  355. JOptionPane.showMessageDialog(this, "User must be at least 18 years old!");
  356. } catch (Exception e2) {
  357. e2.printStackTrace();
  358. }
  359.  
  360. if(!cbTerms.isSelected())
  361. JOptionPane.showMessageDialog(this, "Agreement checkbox must be checked!");
  362.  
  363. try {
  364. if(isName(nameValue) && isEmail(emailValue) && isPass && isPicked && cbTerms.isSelected() && is18Yo(dobValue)) {
  365. try {
  366. db.open();
  367. db.inputUser(nameValue, emailValue, passwordValue, dobValue, genderValue);
  368. JOptionPane.showMessageDialog(this, "Input Successful!");
  369. db.close();
  370. } catch (Exception e1) {
  371. e1.printStackTrace();
  372. }
  373.  
  374. }
  375. } catch (Exception e1) {
  376. // TODO Auto-generated catch block
  377. e1.printStackTrace();
  378. }
  379.  
  380.  
  381. }
  382.  
  383. }
  384.  
  385. @Override
  386. public void keyPressed(KeyEvent arg0) {
  387. // TODO Auto-generated method stub
  388.  
  389. }
  390.  
  391. @Override
  392. public void keyReleased(KeyEvent arg0) {
  393. // TODO Auto-generated method stub
  394.  
  395. }
  396.  
  397. @Override
  398. public void keyTyped(KeyEvent arg0) {
  399. // TODO Auto-generated method stub
  400.  
  401. }
  402.  
  403. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement