티스토리 뷰

앞 시간까지  공부했던 것들을 응용해서 이번 시간에는 간단한 Log In 프로그램을 만들어 보겠다.

앞 시간에 공부했던 , JFrame , JPanel ,  JButton , JLabel , ActionListener을 모두 사용할 것이다. 복습은 틈틈이!

먼저 Main에 JFrame을 상속해줄 것이다. 

1번째 시간에 배웠던 기본 Frame 틀을 만들어주자.

public class Main extends JFrame {

    setVisible(true); 

    setSize(600 , 400);

    setResizable(false);

    setLocationRealtiveTo(null);

   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 }

기본 Frame 화면 틀은 갖추어졌다.  로그인 화면에서는 ID 칸과 PS 칸이 필요하다 이외에도 Log in 버튼과 로그인이 성공했을 때 또는 실패했을 때 기능도 추가해주어야 한다.  말 그대로 간단한 로그인 프로그램을 만들 것이다. 서버로 넘기는 방법은 차후에 포스트 하겠다.

로그인할 ID와 PS를 표시해주려면 자연스럽게 JLabel을 이용해야 할 것이며

로그인 칸과 PS 칸은 JTextField를 사용할 것이다. 여기서 PS 칸은 보안이 중요하므로 JPasswordField를 사용할 것이다.

로그인 버튼은 JButton

이벤트 처리는 addActionListener로 처리해주겠다.

  • JPanel panel = new JPanel();
  • JLabel label =new JLabel("ID : ");
  • JLabel pswrd = new JLabel("PassWord : ");
  • JTextfield txtID = new JTextField(10);      // 여기서 숫자 10은 칸수를 의미한다.  
  • JPasswordField txtpass = new JPasswordField(10);  
  • JButton logBtn = new JButton("Log in");

 

 

이후 아이디 비밀번호 로그인 버튼 순서대로 panel에 추가해주면 된다.

  • panel.add(label);
  • panel.add(txtID);
  • panel.add(pswrd);
  • panel.add(txtpass);
  • panel.add(logBtn);

현재까지 작업한 GUI 화면 은 아래와 같다.

간단한 Log in 화면

 

이제 여기에 로그인했을 때 이벤트를  addActionListener 클래스를 이용하여 만들어 보겠다.

아이디 : "Rewind"   ,    비밀번호 "1234"로 설정해보겠다.

logBtn.addActionListener( new ActionListener() {

     public void actionPerformed(ActionEvent e) {

        String id = "Rewind" ;

        String pass = "1234";

             if(id.equals( txtID.getText() )  && pass.equals( txtpass.getText() )  )  { 

                 JOptionPane.showMessageDialog(null, " you have logged in successfully");

              } else   {

               JOptionPane.showMessageDialog(null, " you failed to login");

                }

     }

}  );

이제 올바른 아이디 비밀번호와 그렇지 않은 아이디와 비밀번호를 입력해보겠다.

성공적으로 로그인됨

ID : Rewind   PassWord : 1234     입력 시 성공적으로 로그인했다.

하지만 문자 1개 라도 틀린다면 

로그인에 실패함

 로그인에 실패하게 된다.     

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import javax.swing.*;
 
import java.awt.event.*;
 
public class Main extends JFrame {
 
    public Main() {
 
        JPanel panel = new JPanel();
 
        JLabel label = new JLabel("ID : ");
 
        JLabel pswrd = new JLabel("PassWord : ");
 
        JTextField txtID= new JTextField(10);
 
        JPasswordField txtPass = new JPasswordField(10);
 
        JButton logBtn = new JButton("Log in");
 
 
        panel.add(label);
        panel.add(txtID);
        panel.add(pswrd);
        panel.add(txtPass);
        panel.add(logBtn);
 
        logBtn.addActionListener( new ActionListener() {
 
                
                        public void actionPerformed(ActionEvent e) {
 
                                String id = "Rewind";
                                String pass = "1234";
 
 
                                    if(id.equals(txtID.getText()) &&  pass.equals(txtPass.getText())) {
 
                                            JOptionPane.showMessageDialog( null"you have logged in successfully" );
                                    } else {
 
                                        JOptionPane.showMessageDialog( null , " you failed to log in ");
 
                                    }
 
 
 
 
 
                        }
 
 
 
                } );
 
 
 
 
        add(panel);
 
 
        setVisible(true);
 
        setSize( 600 , 400);
 
        setLocationRelativeTo(null);
 
        setResizable(false);
 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
    }
 
 
 
  public static void main(String[] args) {
 
        new Main();
 
 
  }
 
 
 
}
 
 

 

 

Danny 씨에게 감사를 표합니다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함