Sajmon

SimeGuiWithLoginDialog

May 1st, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.77 KB | None | 0 0
  1. package com.jana.gui;
  2.  
  3. import java.awt.Container;
  4. import java.awt.Dimension;
  5. import java.awt.FlowLayout;
  6. import java.awt.Toolkit;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9.  
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JMenu;
  13. import javax.swing.JMenuBar;
  14. import javax.swing.JMenuItem;
  15.  
  16. public class MainWindow extends JFrame {
  17.  
  18.     private static final long serialVersionUID = 1L;
  19.    
  20.     // UI components
  21.    
  22.     private Container controls; // hlavny Container kde budes vkladas vsetko (nadpisy, tlacitka atď...)
  23.     private JLabel title;
  24.     private JMenuBar menubar;
  25.     private JMenu login;
  26.     private JMenuItem login_item;
  27.    
  28.     public MainWindow() {
  29.         super("Add here your title");
  30.         this.setSize(640, 480); // nadstavujes velkost okna
  31.         this.setResizable(false); // ak to mas na true, mozes menit velkost okna tahanim mysou, inak nie
  32.         centerWindow(); // vycentruje to na stred monitoru
  33.         initMenu();
  34.         init();
  35.     }
  36.    
  37.     private void init() {
  38.         controls = getContentPane(); // vrati Container okna
  39.         controls.setLayout(new FlowLayout()); // nadstavis layout containera
  40.        
  41.         title = new JLabel("Lorem ipsum dolor sit amet");
  42.         controls.add(title);
  43.     }
  44.    
  45.     private void centerWindow() {
  46.         Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  47.         this.setLocation(d.width / 4, d.height / 6);
  48.     }
  49.  
  50.     private void initMenu() {
  51.        
  52.         menubar = new JMenuBar();
  53.         this.setJMenuBar(menubar);
  54.  
  55.         login = new JMenu("System");
  56.         menubar.add(login);
  57.         login_item = new JMenuItem("Login");
  58.         login.add(login_item);
  59.         login_item.addActionListener(new ActionListener() {
  60.             @Override
  61.             public void actionPerformed(ActionEvent e) {
  62.                 LoginDialog d = new LoginDialog(MainWindow.this);
  63.                 d.setVisible(true);
  64.             }
  65.         });
  66.     }
  67. }
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80. package com.jana.gui;
  81.  
  82. import java.awt.Container;
  83. import java.awt.GridBagConstraints;
  84. import java.awt.GridBagLayout;
  85. import java.awt.Insets;
  86. import java.awt.Toolkit;
  87. import java.awt.event.ActionEvent;
  88. import java.awt.event.ActionListener;
  89.  
  90. import javax.swing.JButton;
  91. import javax.swing.JDialog;
  92. import javax.swing.JLabel;
  93. import javax.swing.JOptionPane;
  94. import javax.swing.JTextField;
  95. import javax.swing.SwingConstants;
  96.  
  97. public class LoginDialog extends JDialog {
  98.  
  99.     private static final long serialVersionUID = 1L;
  100.  
  101.     private MainWindow parent;
  102.     private Container controls;
  103.     private JTextField login, password;
  104.     private JLabel loginLabel, passwordLabel;
  105.     private JButton loginBtn;
  106.  
  107.     public LoginDialog(MainWindow parent) {
  108.         super(parent, "Login into System");
  109.         this.parent = parent;
  110.         this.setSize(350, 180);
  111.         this.setResizable(false);
  112.         this.setLocationRelativeTo(parent);
  113.         init();
  114.     }
  115.  
  116.     private void init() {
  117.         controls = getContentPane();
  118.         controls.setLayout(new GridBagLayout());
  119.  
  120.         GridBagConstraints c = new GridBagConstraints();
  121.  
  122.         c.gridx = 0;
  123.         c.gridy = 0;
  124.         loginLabel = new JLabel("Login:");
  125.         loginLabel.setAlignmentX(SwingConstants.RIGHT);
  126.         controls.add(loginLabel, c);
  127.  
  128.         c.gridx = 1;
  129.         c.gridy = 0;
  130.         c.insets = new Insets(0, 0, 5, 0);
  131.         login = new JTextField(15);
  132.         login.setText("admin");
  133.         login.setEnabled(false);
  134.         controls.add(login, c);
  135.  
  136.         c.gridx = 0;
  137.         c.gridy = 1;
  138.         passwordLabel = new JLabel("Password:");
  139.         controls.add(passwordLabel, c);
  140.  
  141.         c.gridx = 1;
  142.         c.gridy = 1;
  143.         password = new JTextField(15);
  144.         controls.add(password, c);
  145.  
  146.         c.gridx = 0;
  147.         c.gridy = 2;
  148.         c.fill = GridBagConstraints.VERTICAL;
  149.         loginBtn = new JButton("Login");
  150.         controls.add(loginBtn, c);
  151.         loginBtn.addActionListener(new ActionListener() {
  152.  
  153.             @Override
  154.             public void actionPerformed(ActionEvent e) {
  155.                 if (password.getText().length() > 0) {
  156.                     String pass = password.getText();
  157.                     if (pass.equals("admin")) {
  158.                         close();
  159.                         Toolkit.getDefaultToolkit().beep(); // zvuk
  160.                         JOptionPane.showMessageDialog(parent, "You are successfully logged in!", "Information", JOptionPane.INFORMATION_MESSAGE);
  161.                     }
  162.                     else {
  163.                         Toolkit.getDefaultToolkit().beep();
  164.                         JOptionPane.showMessageDialog(parent, "Invalid password! Try it again.", "Error", JOptionPane.ERROR_MESSAGE);
  165.                     }
  166.                 }
  167.                 else {
  168.                     Toolkit.getDefaultToolkit().beep();
  169.                     JOptionPane.showMessageDialog(parent, "Password field cannot be empty!", "Warning", JOptionPane.WARNING_MESSAGE);
  170.                 }
  171.             }
  172.         });
  173.     }
  174.  
  175.     private void close() {
  176.         this.dispose();
  177.     }
  178. }
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185. package com.jana.launcher;
  186.  
  187. import javax.swing.SwingUtilities;
  188.  
  189. import com.jana.gui.MainWindow;
  190.  
  191. public class Main {
  192.  
  193.     public static void main(String[] args) {
  194.         SwingUtilities.invokeLater(new Runnable() { // GUI je odporucane spustat vo vlakne
  195.             @Override
  196.             public void run() {
  197.                 MainWindow mw = new MainWindow();
  198.                 mw.setVisible(true);
  199.             }
  200.         });
  201.     }
  202. }
Advertisement
Add Comment
Please, Sign In to add comment