로그인, 회원가입 뷰

2016. 9. 27. 17:19Project/[Java] PC방 예약 관리 시스템


LoginFrame.java(로그인 뷰)

회원가입, 로그인 뷰




<구성 요소>


1. JFrame 세팅


title, size


보이기, 닫기 기능


절대 레이아웃 지정(직접 위치 입력): setLayout(null);



2. 레이어패널 생성


bounds, 레이아웃 지정


다음과 같은 구조로 붙여줌


(프레임 <= 레이어패널(버튼, TF, PF) <= 패널(이미지))



a. TextField


텍스트 상자 안 글자가 녹색으로 표시되게


loginTextField.setForeground(Color.green);



텍스트 상자를 투명하게 만듬


loginTextField.setOpaque(false);




텍스트 상자 테두리 안을 하얗게 채워줌


loginTextField.setBorder(javax.swing.BorderFactory.createEmptyBorder());



b. 버튼


버튼 안에 Image 넣어줌


bt2 = new JButton(new ImageIcon("img/reg.png"));



c. 패널에 이미지 넣기



1) 이미지 파일 받아오기


BufferedImage img = null;


img = ImageIO.read(new File("img/panel.png"));



2) 패널 클래스에 이미지 내용을 그려주기

class MyPanel extends JPanel {
      public void paint(Graphics g) {
           g.drawImage(img, 0, 0, null);
      }
 }

3) 패널 생성

MyPanel panel = new MyPanel();
panel.setBounds(0, 0, 1600, 900);


3. 버튼 액션

1) if (e.getSource().equals(bt)): event 일어난 버튼 찾아, 그것이 bt와 같다면

***char[]로 받아서 String으로 바꿔줌
char[] pass = passwordField.getPassword();
String password = new String(pass);

빈칸이 있으면

JOptionPane.showMessageDialog(null, "빈칸이 있네요");
:팝업창 띄워서 메시지 보여줌





LoginTest 결과를 갖고 "성공(TRUE)" OR "실패(FALSE)"
boolean existLogin = LoginTest.login(id, password);


2) else if(e.getSource().equals(bt2)): 회원가입 창 띄움 & INSERT 쿼리 실행




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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
 
package com.pcroomapp.application;
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
 
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
 
public class LoginFrame extends JFrame implements ActionListener {
 
            BufferedImage img = null;
            JTextField loginTextField;
            JPasswordField passwordField;
            JButton bt;
            JButton bt2;
 
            // 메인
            public static void main(String[] args) {
                        new LoginFrame();
            }
 
            // 생성자
            public LoginFrame() {
                        setTitle("로그인 테스트");
                        setSize(1600900);
                        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                        setLayout(null);
                        
                        //레이어패널 생성
                        JLayeredPane layeredPane = new JLayeredPane();
                        layeredPane.setBounds(001600900);
                        layeredPane.setLayout(null);
 
                        // 패널1
                        MyPanel panel = new MyPanel();
                        panel.setBounds(001600900);
 
                        // 이미지 받아오기
                        try {
                                    img = ImageIO.read(new File("img/panel.png"));
                        } catch (IOException e) {
                                    System.out.println("이미지 불러오기 실패");
                                    System.exit(0);
                        }
 
 
                        // 로그인 필드
                        loginTextField = new JTextField(15);
                        loginTextField.setBounds(73139918030);
                        layeredPane.add(loginTextField);
                        loginTextField.setOpaque(false);
                        loginTextField.setForeground(Color.green);
                        loginTextField.setBorder(javax.swing.BorderFactory.createEmptyBorder());
                        // 패스워드
                        passwordField = new JPasswordField(15);
                        passwordField.setBounds(73152918030);
                        passwordField.setForeground(Color.green);
                        passwordField.setBorder(javax.swing.BorderFactory.createEmptyBorder());
                        layeredPane.add(passwordField);
 
                        // 버튼 추가(로그인)
                        bt = new JButton(new ImageIcon("img/login.png"));
                        bt.setBounds(85568910448);
 
                        // 버튼2 추가(회원가입)
                        bt2 = new JButton(new ImageIcon("img/reg.png"));
                        bt2.setBounds(65568910448);
 
                        // 액션 리스너 추가
                        bt.addActionListener(this);
                        bt2.addActionListener(this);
 
                        layeredPane.add(bt);
                        layeredPane.add(bt2);
 
                        // 마지막 추가들
                        //주의!! 레이어 패널 완성 후에 붙이기&setVisible
                        add(layeredPane);
                        layeredPane.add(panel);
                        setVisible(true);
 
            }
 
            class MyPanel extends JPanel {
                        public void paint(Graphics g) {
                                    g.drawImage(img, 00null);
                        }
            }
 
            @Override
            public void actionPerformed(ActionEvent e) {
                        String id = loginTextField.getText();
 
                        // 버튼에 따라 다른 액션 취하도록
                        // getSource():event 일어난 버튼 찾아, 그것이 bt인지 확인
                        if (e.getSource().equals(bt)) {
                                    char[] pass = passwordField.getPassword();
                                    String password = new String(pass);
 
                                    if (id.equals(""|| password.equals("")) {
                                                // 메시지를 날린다.
                                                JOptionPane.showMessageDialog(null"빈칸이 있네요");
                                    } else {
                                                // 로그인 참 거짓 여부를 판단
                                                boolean existLogin = LoginTest.login(id, password);
 
                                                if (existLogin) {
                                                            // 로그인 성공일 경우
                                                            JOptionPane.showMessageDialog(null"로그인 성공");
                                                } else {
                                                            // 로그인 실패일 경우
                                                            JOptionPane.showMessageDialog(null"로그인 실패");
                                                }
                                    }
                        } else if (e.getSource().equals(bt2)) {
                                    
 
                        }
            }
}
 
cs


'Project > [Java] PC방 예약 관리 시스템' 카테고리의 다른 글

로그인, 회원가입 Back단  (0) 2016.09.27
DB 구축  (0) 2016.09.27
OverView  (0) 2016.09.27