728x90
728x90
2일차
- 비밀번호 찾기 기능 구현
MemberDAO - 비밀번호 찾기 기능
더보기
// 비밀번호 찾기 기능
@Override
public String memberPwFind(String id, String phoneNumber) {
String resultPw = null;
String sql = " SELECT * FROM member WHERE id = ? AND phone_number = ? ";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, phoneNumber);
rs = pstmt.executeQuery();
// 행이 존재한다면 while문으로 들어감
while (rs.next()) {
resultPw = rs.getString("password");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 비밀번호를 찾았다면 비밀번호를 반환함
return resultPw;
}
pwFindFrame
더보기
public class pwFindFrame extends JFrame implements ActionListener, MouseListener {
private JLabel idLabel; // 아이디
private JTextField idTextField; // 아이디 입력창
private JLabel phoneLabel; // 전화번호
private JTextField phoneTextField; // 전화번호 입력창
private JButton pwFindButton; // 비밀번호 찾기 버튼
private Boolean phoneHintOff;
public pwFindFrame() {
initData();
setInitLayout();
addEventListener();
}
private void initData() {
setTitle("비밀번호 찾기");
setSize(400, 200);
phoneHintOff = false;
idLabel = new JLabel(" 아이디");
idTextField = new JTextField("", 10);
phoneLabel = new JLabel("전화번호");
phoneTextField = new JTextField("010-####-####", 10);
pwFindButton = new JButton("비밀번호 찾기");
}
private void setInitLayout() {
setLayout(null);
setResizable(false);
setLocationRelativeTo(null); // JFrame 가운데 배치
Color backgroundColor = new Color(200, 235, 226);
getContentPane().setBackground(backgroundColor);
idLabel.setLocation(30, 50);
idLabel.setSize(200, 10);
add(idLabel);
idTextField.setLocation(85, 46);
idTextField.setSize(93, 20);
add(idTextField);
phoneLabel.setLocation(30, 100);
phoneLabel.setSize(200, 10);
add(phoneLabel);
phoneTextField.setLocation(85, 96);
phoneTextField.setSize(93, 20);
add(phoneTextField);
pwFindButton.setSize(115, 40);
pwFindButton.setLocation(235, 60);
add(pwFindButton);
setVisible(true);
}
private void addEventListener() {
phoneTextField.addMouseListener(this);
pwFindButton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
JButton targetButton = (JButton) e.getSource();
String resultPw = null;
// 비밀번호 찾기 버튼
if (targetButton == pwFindButton) {
// 방어적 코드 (입력되지 않은 값이 있다면 실행 X)
if (idTextField.getText().isEmpty()) {
System.out.println("값이 입력되지 않았습니다.");
return;
}
if (phoneTextField.getText().isEmpty()) {
System.out.println("값이 입력되지 않았습니다.");
return;
}
String id = idTextField.getText();
String phoneNumber = phoneTextField.getText();
MemberDAO memberDAO = new MemberDAO();
resultPw = memberDAO.memberPwFind(id, phoneNumber);
// 입력된 정보가 정확하다면
if (resultPw != null) {
JOptionPane.showMessageDialog(null, id + "님의 비밀번호는 " + resultPw + "입니다.", "비밀번호 찾기 성공", JOptionPane.PLAIN_MESSAGE);
this.dispose(); // 확인 누르면 프레임 꺼짐
} else {
JOptionPane.showMessageDialog(null, "정보를 잘못 입력하셨습니다.", "비밀번호 찾기 실패", JOptionPane.PLAIN_MESSAGE);
}
}
}
// 형식 힌트 제거
@Override
public void mousePressed(MouseEvent e) {
JTextField targetTextField = (JTextField) e.getSource();
if (targetTextField == phoneTextField) {
// 처음 눌렀을 때만 힌트가 없어지도록
if (phoneHintOff == false) {
targetTextField.setText("010-");
phoneHintOff = true;
}
}
}
}
실행
320x100
반응형
'My Project > Pet Shopping Mall GUI Project' 카테고리의 다른 글
[개발 일지] 반려동물 용품 쇼핑몰 GUI 구현 프로젝트 6일차 (03/16) (0) | 2023.03.17 |
---|---|
[개발 일지] 반려동물 용품 쇼핑몰 GUI 구현 프로젝트 5일차 (03/15) (0) | 2023.03.16 |
[개발 일지] 반려동물 용품 쇼핑몰 GUI 구현 프로젝트 4일차 (03/14) (0) | 2023.03.14 |
[개발 일지] 반려동물 용품 쇼핑몰 GUI 구현 프로젝트 3일차 (03/13) (0) | 2023.03.13 |
[개발 일지] 반려동물 용품 쇼핑몰 GUI 구현 프로젝트 1일차 (03/10) (0) | 2023.03.12 |