GUI창에서 돌아가게 하는 정규식(RegularExpression) 사용방법.
꼭 굳이 GUI로 안해도 되지만 만들어놓은 포맷이 있으니 GUI를 사용하겠다.
00. '^01[016789]-\\d{4}-\\d{4}'
-> ^ ; 시작/ 01뒤에 016789만 올수있다/ int 타입 4개/ int 타입 4개
01. 0은 패턴에 맞지않는다.
02. 01 다음에 6789 만 와야하므로 패턴에 맞지 않다.
03. 맞는 패턴.!! 확인.!!
※. 코드
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Pattern;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
class MyFrame extends JFrame implements ActionListener{
private JPanel displayPanel;
private JPanel inputPanel;
private JTextArea display;
private JTextField input;
public MyFrame()
{
this.setTitle("My GUI");
this.setSize(500, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*
* panel 생성하고, 필요한 컴포넌트를 만들기
*/
displayPanel = new JPanel();
displayPanel.setLayout(new FlowLayout());
display = new JTextArea(11, 30);
Font displayFont = new Font("Serif", Font.BOLD, 20);
display.setFont(displayFont);
display.setEditable(false);
// textarea를 스크롤이 되도록 변경
JScrollPane scroll = new JScrollPane(display);
displayPanel.add(scroll);
inputPanel = new JPanel();
inputPanel.setLayout(new FlowLayout());
input = new JTextField(30);
Font inputFont = new Font("Serif", Font.BOLD, 20);
input.setFont(inputFont);
input.addActionListener(this);
inputPanel.add(input);
/*
* Frame에 두개의 panel을 붙이기
*/
this.setLayout(new BorderLayout());
this.add(displayPanel, BorderLayout.CENTER);
this.add(inputPanel, BorderLayout.SOUTH);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == input)
{
display.append( input.getText() + "\n");
String regex = "^01[016789]-\\d{4}-\\d{4}"; // \가 특수기호이므로 두번해줘야 정상작동 in JAVA
if (Pattern.matches(regex, input.getText()) == false) // input에 있는 텍스트 값과 regex 값 비교
{
display.append("휴대전화 패턴이 잘못되었습니다."+"\n");
}else
{
display.append("OK Mobile Pattern" + "\n");
}
input.selectAll();
}
}// actionPerformed
}// MyFrame Class
public class Test3 {
public static void main(String[] args) {
MyFrame frame = new MyFrame();
}// main
}// Main Class