[Java] Swing (2)
간단한 로그인 프로그램
스윙의 기초나 대략 어떻게 사용하는지를 알아봤는데, 그냥 기초만 무작정 공부하기보다는
간단한 에제프로그램을 만들어보면서 익히는 것이 가장 어떤 툴이나 언어를 빨리 습득하는 방법이 아닐까 싶다
애초에 계산기 자체도 작은 프로젝트지만, 스윙은 또 처음 배우는 라이브러리기 때문에 숙달을 위해
느낌으로 아주 간단한 예제를 통해 스윙을 배워보도록 하려고 한다.
로그인프로그램은 간단하게 아이디와 비밀번호를 입력할 수 있는 패널을 만들어
아이디와 비밀번호가 서버에 있는 내용과 일치하면 로그인을 허락하는 방식이다.
계산기를 만들기 위해서는 특정한 버튼을 누르면 텍스트에리어에 숫자가 나오게 되고 이를 연산자로
처리해야하는데, 이러한 기능들을 숙달하기 위해서 간단하게 만들어 보도록하자
먼저 클래스의 이름을 LogIn으로 선언하고 이 프로그램의 뼈대를 만들어준다.
1
2
3
4
5
6
7
8
9
10
11
12
package swing;
import javax.swing.JFrame;
public class LogIn extends JFrame {
public LogIn(){
}
public static void main(String[] args){
new LogIn();
}
}
LogIn 이라는 JFrame을 상속받는 클래스를 만들고, main함수에서 LogIn클래스를 실행하도록 해주었다.
그 다음 컨테이너의 대략적인 속성들을 지정하여 창을 띄울 수 있도록 해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package swing;
import javax.swing.JFrame;
public class LogIn extends JFrame {
public LogIn(){
setVisible(true);
setTitle("LogIn");
setResizable(false);
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args){
new LogIn();
}
}
- setVisible() : rue로 함으로써 창이 보이도록 해주었다.
- setTitle() : 창의 제목이 “LogIn”으로 뜨게 해주었다.
- setResizable() : false로 설정하여 사이즈 조절이 불가능하게 설정하였다.
- setSize() : 사이즈를 600 * 400 으로 설정했다.
- setLocationRelativeTo() : 창을 정가운데에 띄우도록 한다.
- setDefaultCloseOperation() : EXIT_ON_CLOSE를 매개변수로 입력해주면,
창을 닫으면 프로그램이 알아서 종료된다.
다음은 아이디의 컴포넌트가 들어갈 패널을 만들어 컨테이너에 넣어주도록 하자.
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
package swing;
import javax.swing.*;
public class LogIn extends JFrame {
public LogIn(){
JPanel panel = new JPanel();
JLabel label = new JLabel("ID : ");
JTextField txtID = new JTextField(10);
panel.add(label);
panel.add(txtID);
add(panel);
setVisible(true);
setTitle("LogIn");
setResizable(false);
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args){
new LogIn();
}
}
panel 이라는 JPanel 인스턴스와 JLabel 의 새로운 인스턴스를 만들고,
이렇게 선언한 컴포넌트를 패널에 추가해준뒤, 이 패널을 컨테이너에 추가해준다.
그럼 이제 패스워드를 만들어 줄건데, JPasswordField()를 사용할 것이다.
우리가 인터넷에서 패스워드를 입력할 때, 패스워드는 입력은 가능하지만 *** 처럼 암호화되어 화면에 표시되는데,
이러한 입력을 도와주는 메서드이다.
아래 처럼 입력을 하면 화면에 암호화 되어 출력되는 것을 볼 수 있다.
다음은 JButton을 사용해 로그인 버튼을 만들어 준다.
이렇게 우리가 만들어 볼 프로그램의 UI가 대략 만들어졌다.
이제 이 UI에 기능을 추가해보자.
실제로 웹페이지에서의 로그인은 보안을 중요시 해야하기 때문에 복잡할 수 있겠지만,
지금 우리가 만드는 것은 단순하게 우리가 입력한 값이 저장된 아이디, 패스워드 값과 일치하면 로그인,
아니면 실패만 뜨면 되므로, 간단하게 구현할 수 있다.
addActionListener() 통해서 버튼에 로그인 기능을 구현해보자.
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
package swing;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LogIn extends JFrame {
...
loginBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String id = "LMJ";
String pass = "1234";
if(id.equals(txtID.getText()) && pass.equals(txtPass.getText())){
JOptionPane.showMessageDialog(null,"로그인에 성공하였습니다.","로그인 성공",JOptionPane.INFORMATION_MESSAGE);
}
else{
JOptionPane.showMessageDialog(null,"로그인에 실패하였습니다.","오류",JOptionPane.ERROR_MESSAGE);
}
}
});
...
}
간단하게 ID를 LMJ, Password를 1234로 설정해 주었는데, JOptionpane.showMessageDialog()를 사용하였다.
showMessageDialog()는 우리가 프로그램에서 보는 알림창을 띄워주는 메서드인데, 매개변수는 다음과 같다.
- Component parentComponent : 메시지창이 어떤 Frame 에서 보이지게 될 것인지 지정해준다. 보통 null 을 사용한다.
- Object message : 출력할 문자열을 써준다.
- String title : 제목표시줄에 나타날 제목을 써준다.
- int messageType : 메시지 종류를 지정해준다. ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, or PLAIN_MESSAGE 가 있다.
- Icon icon : Icon 이미지를 설정한다.
이렇게 알림창을 간단히 설정 할 수 있게 해주는 메서드이다.
그럼 적용된 화면을 보도록 하면,
실패 알림창
성공 알림창
이렇게, 아주 간단한 로그인 프로그램을 Swing을 이용해 만들어 보았다.
댓글남기기