로그인, 회원가입 뷰
2016. 9. 27. 17:19ㆍProject/[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);
}
}
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
}
3) 패널 생성
MyPanel panel = new MyPanel();
panel.setBounds(0, 0, 1600, 900);
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);
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(1600, 900); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLayout(null); //레이어패널 생성 JLayeredPane layeredPane = new JLayeredPane(); layeredPane.setBounds(0, 0, 1600, 900); layeredPane.setLayout(null); // 패널1 MyPanel panel = new MyPanel(); panel.setBounds(0, 0, 1600, 900); // 이미지 받아오기 try { img = ImageIO.read(new File("img/panel.png")); } catch (IOException e) { System.out.println("이미지 불러오기 실패"); System.exit(0); } // 로그인 필드 loginTextField = new JTextField(15); loginTextField.setBounds(731, 399, 180, 30); layeredPane.add(loginTextField); loginTextField.setOpaque(false); loginTextField.setForeground(Color.green); loginTextField.setBorder(javax.swing.BorderFactory.createEmptyBorder()); // 패스워드 passwordField = new JPasswordField(15); passwordField.setBounds(731, 529, 180, 30); passwordField.setForeground(Color.green); passwordField.setBorder(javax.swing.BorderFactory.createEmptyBorder()); layeredPane.add(passwordField); // 버튼 추가(로그인) bt = new JButton(new ImageIcon("img/login.png")); bt.setBounds(855, 689, 104, 48); // 버튼2 추가(회원가입) bt2 = new JButton(new ImageIcon("img/reg.png")); bt2.setBounds(655, 689, 104, 48); // 액션 리스너 추가 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, 0, 0, null); } } @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 |