Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Swing으로 로그인 폼 만드는 방법 완벽 가이드

Java에서는 Swing 기술을 활용해 손쉽게 로그인 폼을 개발할 수 있습니다. 이 예제에서는 사용자 이름(Username)비밀번호(Password) 라벨 두 개, 사용자가 유효한 인증 정보를 입력할 수 있는 텍스트 필드 두 개, 그리고 마지막으로 제출 버튼 하나를 생성합니다. 사용자가 두 텍스트 필드에 올바른 인증 정보를 입력하면 로그인 폼에 Hello admin이라는 환영 메시지가 표시됩니다.

예제 코드

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class LoginDemo extends JFrame implements ActionListener {
    JPanel panel;
    JLabel user_label, password_label, message;
    JTextField userName_text;
    JPasswordField password_text;
    JButton submit;

    LoginDemo() {
        // 사용자 이름 라벨
        user_label = new JLabel();
        user_label.setText("User Name :");
        userName_text = new JTextField();

        // 비밀번호 라벨
        password_label = new JLabel();
        password_label.setText("Password :");
        password_text = new JPasswordField();

        // 제출 버튼
        submit = new JButton("SUBMIT");

        panel = new JPanel(new GridLayout(3, 2));
        panel.add(user_label);
        panel.add(userName_text);
        panel.add(password_label);
        panel.add(password_text);
        message = new JLabel();
        panel.add(message);
        panel.add(submit);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 컴포넌트에 리스너 등록
        submit.addActionListener(this);

        add(panel, BorderLayout.CENTER);
        setTitle("Please Login Here !");
        setSize(450, 350);
        setVisible(true);
    }

    public static void main(String[] args) {
        new LoginDemo();
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        String userName = userName_text.getText();
        String password = password_text.getText();

        if (userName.trim().equals("admin") && password.trim().equals("admin")) {
            message.setText(" Hello " + userName + " ");
        } else {
            message.setText(" Invalid user.. ");
        }
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 로그인 창이 화면에 나타납니다.

Java Swing으로 로그인 폼 만드는 방법 완벽 가이드

코드 설명

이 프로그램의 핵심 구조는 다음과 같습니다.

1. UI 구성 요소: JLabel로 입력 항목을 안내하고, JTextFieldJPasswordField로 사용자 입력을 받습니다. 특히 JPasswordField는 입력된 비밀번호를 마스킹 처리하여 보안성을 높입니다.

2. 레이아웃 관리: GridLayout(3, 2)를 사용해 라벨과 텍스트 필드를 격자 형태로 깔끔하게 배치합니다.

3. 이벤트 처리: ActionListener 인터페이스를 구현하여 제출 버튼 클릭 시 actionPerformed() 메서드가 호출되도록 합니다. 이 메서드에서 입력된 값이 'admin'과 일치하는지 검증한 후, 성공 여부에 따라 적절한 메시지를 표시합니다.

4. trim() 메서드: 입력값 앞뒤의 공백을 제거하여 의도치 않은 공백으로 인한 로그인 실패를 방지합니다.

실제 프로젝트에서는 하드코딩된 아이디/비밀번호 대신 데이터베이스 연동이나 해시 기반 비밀번호 검증 방식을 사용하는 것이 좋습니다.