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.. ");
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 로그인 창이 화면에 나타납니다.

코드 설명
이 프로그램의 핵심 구조는 다음과 같습니다.
1. UI 구성 요소: JLabel로 입력 항목을 안내하고, JTextField와 JPasswordField로 사용자 입력을 받습니다. 특히 JPasswordField는 입력된 비밀번호를 마스킹 처리하여 보안성을 높입니다.
2. 레이아웃 관리: GridLayout(3, 2)를 사용해 라벨과 텍스트 필드를 격자 형태로 깔끔하게 배치합니다.
3. 이벤트 처리: ActionListener 인터페이스를 구현하여 제출 버튼 클릭 시 actionPerformed() 메서드가 호출되도록 합니다. 이 메서드에서 입력된 값이 'admin'과 일치하는지 검증한 후, 성공 여부에 따라 적절한 메시지를 표시합니다.
4. trim() 메서드: 입력값 앞뒤의 공백을 제거하여 의도치 않은 공백으로 인한 로그인 실패를 방지합니다.
실제 프로젝트에서는 하드코딩된 아이디/비밀번호 대신 데이터베이스 연동이나 해시 기반 비밀번호 검증 방식을 사용하는 것이 좋습니다.