Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.io.File;
- import java.io.IOException;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.concurrent.TimeUnit;
- import javax.imageio.ImageIO;
- import javax.swing.*;
- import javax.swing.border.*;
- import javax.swing.text.DateFormatter;
- public class Main extends JFrame implements ActionListener, KeyListener{
- JPanel panelHeaderLogin, panelContentLogin, panelFooterLogin, panelHeaderRegister, panelContentRegister, panelFooterRegister, panelGender, panelButton;
- JLabel lblTitle, lblEmail, lblPassword, lblName, lblConfirmPassword, lblGender, lblDOB, lblImage;
- JTextField txtEmail, txtName;
- JPasswordField txtPassword, txtConfirmPassword;
- JButton btnLogin, btnRegister, btnGetStarted, btnCancel;
- JRadioButton radioMale, radioFemale;
- JCheckBox cbTerms;
- ButtonGroup bgGender;
- JFrame login, register, adminForm, userForm;
- JSpinner spDOB;
- Connect db;
- void login() {
- login = new JFrame();
- panelHeaderLogin = new JPanel();
- panelContentLogin = new JPanel();
- panelFooterLogin = new JPanel();
- // header
- lblTitle = new JLabel("Login");
- //lblTitle.setForeground(Color.BLACK);
- panelHeaderLogin.add(lblTitle);
- // content
- panelContentLogin.setLayout(new GridLayout(2, 2));
- panelContentLogin.setBorder(new EmptyBorder(0,10,0,10));
- lblEmail = new JLabel("Email");
- txtEmail = new JTextField();
- lblPassword = new JLabel("Password");
- txtPassword = new JPasswordField();
- panelContentLogin.add(lblEmail);
- panelContentLogin.add(txtEmail);
- panelContentLogin.add(lblPassword);
- panelContentLogin.add(txtPassword);
- //footer
- btnLogin = new JButton("Login");
- btnRegister = new JButton("Register");
- panelFooterLogin.add(btnLogin);
- panelFooterLogin.add(btnRegister);
- login.setSize(400, 150);
- login.setTitle("Login");
- login.add(panelHeaderLogin, BorderLayout.NORTH);
- login.add(panelContentLogin, BorderLayout.CENTER);
- login.add(panelFooterLogin, BorderLayout.SOUTH);
- login.setLocationRelativeTo(null);
- login.setDefaultCloseOperation(EXIT_ON_CLOSE);
- login.setVisible(true);
- login.setResizable(false);
- btnRegister.addActionListener(this);
- }
- void register() {
- register = new JFrame();
- panelHeaderRegister = new JPanel();
- panelContentRegister = new JPanel();
- panelFooterRegister = new JPanel();
- // header
- lblTitle = new JLabel("Register");
- panelHeaderRegister.add(lblTitle);
- // content
- panelContentRegister.setLayout(new GridLayout(6, 2));
- panelContentRegister.setBorder(new EmptyBorder(0,10,0,10));
- lblName = new JLabel("Name : ");
- txtName = new JTextField();
- panelContentRegister.add(lblName);
- panelContentRegister.add(txtName);
- lblEmail = new JLabel("Email : ");
- txtEmail = new JTextField();
- panelContentRegister.add(lblEmail);
- panelContentRegister.add(txtEmail);
- lblPassword = new JLabel("Password : ");
- txtPassword = new JPasswordField();
- panelContentRegister.add(lblPassword);
- panelContentRegister.add(txtPassword);
- lblConfirmPassword = new JLabel("Confirm Password");
- txtConfirmPassword = new JPasswordField();
- panelContentRegister.add(lblConfirmPassword);
- panelContentRegister.add(txtConfirmPassword);
- lblGender = new JLabel("Gender : ");
- radioMale = new JRadioButton("Male");
- radioFemale = new JRadioButton("Female");
- panelGender = new JPanel();
- panelGender.setLayout(new FlowLayout(FlowLayout.LEFT));
- panelGender.add(radioMale);
- panelGender.add(radioFemale);
- bgGender = new ButtonGroup();
- bgGender.add(radioMale);
- bgGender.add(radioFemale);
- panelContentRegister.add(lblGender);
- panelContentRegister.add(panelGender);
- lblDOB = new JLabel("Date of Birth : ");
- SimpleDateFormat model = new SimpleDateFormat("yyyy-MM-dd");
- spDOB = new JSpinner(new SpinnerDateModel());
- spDOB.setEditor(new JSpinner.DateEditor(spDOB, model.toPattern()));
- panelContentRegister.add(lblDOB);
- panelContentRegister.add(spDOB);
- //footer
- panelFooterRegister.setLayout(new FlowLayout(FlowLayout.CENTER));
- panelFooterRegister.setBorder(new EmptyBorder(0,10,25,10));
- cbTerms = new JCheckBox("I agree to terms and agreements");
- panelFooterRegister.add(cbTerms);
- panelButton = new JPanel();
- btnGetStarted = new JButton("Get Started!");
- btnCancel = new JButton("Cancel");
- panelButton.add(btnGetStarted);
- panelButton.add(btnCancel);
- panelFooterRegister.add(panelButton);
- register.setSize(400, 300);
- register.setTitle("Register Account");
- register.add(panelHeaderRegister, BorderLayout.NORTH);
- register.add(panelContentRegister, BorderLayout.CENTER);
- register.add(panelFooterRegister, BorderLayout.SOUTH);
- register.setLocationRelativeTo(null);
- register.setDefaultCloseOperation(EXIT_ON_CLOSE);
- register.setVisible(true);
- register.setResizable(false);
- btnCancel.addActionListener(this);
- btnGetStarted.addActionListener(this);
- }
- void userForm() {
- userForm = new JFrame();
- JPanel userForm = new JPanel();
- JMenuBar bar;
- JMenu name, buy, transactionHistory;
- JMenuItem logout;
- bar = new JMenuBar();
- bar.setFont(new Font("", Font.PLAIN, 12));
- name = new JMenu("Nama user");
- logout = new JMenuItem("Logout");
- name.add(logout);
- buy = new JMenu("Buy");
- transactionHistory = new JMenu("Transaction History");
- bar.add(name);
- bar.add(buy);
- bar.add(transactionHistory);
- setJMenuBar(bar);
- try {
- lblImage = new JLabel(new ImageIcon(ImageIO.read(new File("image.jpg"))));
- } catch (IOException e) {
- e.printStackTrace();
- }
- add(lblImage);
- adminForm.setSize(1200, 800);
- adminForm.setLocationRelativeTo(null);
- adminForm.setDefaultCloseOperation(EXIT_ON_CLOSE);
- adminForm.setVisible(true);
- adminForm.setResizable(false);
- }
- void adminForm() {
- adminForm = new JFrame();
- JMenuBar bar;
- JMenu name, manage;
- JMenuItem logout, manage1, manage2, manage3;
- JMenu transactionHistory;
- bar = new JMenuBar();
- name = new JMenu("Nama user");
- name.setFont(new Font("", Font.PLAIN, 12));
- logout = new JMenuItem("Logout");
- logout.setFont(new Font("", Font.PLAIN, 12));
- name.add(logout);
- manage = new JMenu("Manage");
- manage.setFont(new Font("", Font.PLAIN, 12));
- manage1 = new JMenuItem("Manage Clothing");
- manage1.setFont(new Font("", Font.PLAIN, 12));
- manage2 = new JMenuItem("Manage Clothing Type");
- manage2.setFont(new Font("", Font.PLAIN, 12));
- manage3 = new JMenuItem("Manage Transaction");
- manage3.setFont(new Font("", Font.PLAIN, 12));
- manage.add(manage1);
- manage.add(manage2);
- manage.add(manage3);
- bar.add(name);
- bar.add(manage);
- setJMenuBar(bar);
- try {
- lblImage = new JLabel(new ImageIcon(ImageIO.read(new File("image.jpg"))));
- } catch (IOException e) {
- e.printStackTrace();
- }
- add(lblImage);
- adminForm.setSize(1200, 800);
- adminForm.setLocationRelativeTo(null);
- adminForm.setDefaultCloseOperation(EXIT_ON_CLOSE);
- adminForm.setVisible(true);
- adminForm.setResizable(false);
- }
- public Main() {
- db = new Connect();
- login();
- // adminForm();
- }
- public static void main(String[] args) {
- new Main();
- }
- public String getGenderValue() {
- if(radioMale.isSelected())
- return "Male";
- else if(radioFemale.isSelected())
- return "Female";
- else
- return null;
- }
- public static boolean isName(String name) {
- char chr[] = name.toCharArray();
- for(char i : chr) {
- if(!Character.isLetter(i) && !Character.isSpace(i))
- return false;
- }
- if(name.startsWith(" "))
- return false;
- else if (name.endsWith(" "))
- return false;
- else if(name.length() == 0)
- return false;
- return true;
- }
- public boolean isEmail(String text){
- if(!text.endsWith(".com")){
- return false;
- }else if(!text.contains("@")){
- return false;
- }else if(text.startsWith("@") || text.startsWith(".")){
- return false;
- }else if(text.contains("@.")){
- return false;
- }else if(text.length() == 0) {
- return false;
- }
- return true;
- }
- public boolean is18Yo(String dob) throws Exception{
- SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
- Date dobDate = myFormat.parse(dob);
- Date date = new Date();
- String crrDate = myFormat.format(date);
- Date currDate = myFormat.parse(crrDate);
- long diff = currDate.getTime() - dobDate.getTime();
- return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS) > 6570;
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if(e.getSource() == btnRegister) {
- login.dispose();
- register();
- }else if(e.getSource() == btnCancel) {
- register.dispose();
- login();
- }else if(e.getSource() == btnGetStarted) {
- String nameValue = txtName.getText();
- String emailValue = txtEmail.getText();
- String passwordValue = txtPassword.getText();
- String conPassValue = txtConfirmPassword.getText();
- boolean isPass = false;
- String genderValue = getGenderValue();
- boolean isPicked = false;
- SimpleDateFormat formater = new SimpleDateFormat("dd MM yyyy");
- String dobValue = formater.format(spDOB.getValue());
- if(conPassValue.equals(passwordValue))
- isPass = true;
- if(radioMale.isSelected() || radioFemale.isSelected())
- isPicked = true;
- if(nameValue == null || emailValue == null || passwordValue == null || conPassValue == null || genderValue == null)
- JOptionPane.showMessageDialog(this, "All fields must be filled!");
- if(!isName(nameValue))
- JOptionPane.showMessageDialog(this, "Name must be alphabetic!");
- if(!isEmail(emailValue))
- JOptionPane.showMessageDialog(this, "Email format is not valid!");
- if(!isPass)
- JOptionPane.showMessageDialog(this, "Password confirmation should be the same as Password!");
- if(!isPicked)
- JOptionPane.showMessageDialog(this, "Gender must be chosen!");
- try {
- if(!is18Yo(dobValue))
- JOptionPane.showMessageDialog(this, "User must be at least 18 years old!");
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- if(!cbTerms.isSelected())
- JOptionPane.showMessageDialog(this, "Agreement checkbox must be checked!");
- try {
- if(isName(nameValue) && isEmail(emailValue) && isPass && isPicked && cbTerms.isSelected() && is18Yo(dobValue)) {
- try {
- db.open();
- db.inputUser(nameValue, emailValue, passwordValue, dobValue, genderValue);
- JOptionPane.showMessageDialog(this, "Input Successful!");
- db.close();
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
- } catch (Exception e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- }
- @Override
- public void keyPressed(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void keyReleased(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void keyTyped(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement