swing component swing component 프로그래밍 · 2015-01-21 · 고급프로그래밍 swing...
TRANSCRIPT
Swing Component 프로그래밍Swing Component 프로그래밍
Lab Exercise #7Lab Exercise #7
2007 봄학기
고급 프로그래밍
김 영 국충남대 전기정보통신공학부
고급 프로그래밍 Swing Component 프로그래밍 2
실습 내용
실습과제 7-1 :정규 표현식을 이용한 사용자 정보의 유효성 검사
(ATM에서 사용자 등록 용도로 사용 가능)
실습과제 7-2 : 숫자 맞추기 게임
실습과제 7-3 :은행 관리 프로그램
고급 프로그래밍 Swing Component 프로그래밍 3
정규표현 식에서의 한정사 사용
한정사 설명
* 일치하는 문자열이 없거나 하나이상 있다.
+ 일치하는 문자열이 하나 있다.
? 일치하는 문자열이 없거나 하나 있다.
{n} 일치하는 문자열이 정확히 n개 있다.
{n,} 일치하는 문자열이 적어도 n개 있다.
{n,m} 일치하는 문자열이 n개 이상 m개 있다.
[0-9a-zA-Z] 숫자와 알파벳의 조합 문자열
고급 프로그래밍 Swing Component 프로그래밍 4
실습과제 7-1(1)
Jlabel : 읽기 전용 텍스트나 이미지를 보
여주는데 사용
JTextField : 사용자가 키보드를 통해서텍스트 입력받거나프로그램이 텍스트보여줄 수 있는 단
행 영역
JPasswordField :사용자가 문자를 입력할때 실제 문자를
감춘다
JButton :사용자가 클릭할때특정 행위가 일어나도록 함
command, check box, radio, toggle 등이 있다.
고급 프로그래밍 Swing Component 프로그래밍 5
실습과제 7-1(2)import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ValidateFrame extends JFrame {
private JTextField phoneTextField, passwdField,re_passwdField,addressTextField, firstTextField, lastTextField;
public ValidateFrame(){ super( "Validate" );
// create the GUI componentsJLabel phoneLabel = new JLabel( "Phone" );/*다른 컴포넌트 추가한다. Jlabel*/JButton okButton = new JButton( "OK" );okButton.addActionListener(
new ActionListener() { // inner classpublic void actionPerformed( ActionEvent event ) {
validateDate();} } );
고급 프로그래밍 Swing Component 프로그래밍 6
실습과제 7-1(3)/*JTextFiled components 생성한다.*/Container container = getContentPane();/* GridLayout 사용 */
/* container에 component들을 추가시킨다. */
setSize( 300, 225 );setVisible( true );
} // end ValidateFrame constructor
public static void main( String args[] ){
ValidateFrame application = new ValidateFrame();application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
고급 프로그래밍 Swing Component 프로그래밍 7
실습과제 7-1(4)public static void main( String args[] )
{ValidateFrame application = new ValidateFrame();application.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE );}
// handles okButton action eventprivate void validateDate(){/* 값을 넣지 않은 필드가 있는지 체크 getText() 사용*/
JOptionPane.showMessageDialog( this, "Please fill all fields" );
고급 프로그래밍 Swing Component 프로그래밍 8
실습과제 7-1(5)// first name 으로 입력한 값이 정규표현에 맞는지 체크
else if ( !firstTextField.getText().matches( "[a-zA-Z]{2,}" ) )JOptionPane.showMessageDialog( this, "Invalid first name" );
// last name 으로 입력한 값이 정규표현에 맞는지 체크
// address 으로 입력한 값이 정규표현에 맞는지 체크
// password 으로 입력한 값이 정규표현에 맞는지 체크
// repeat password 으로 입력한 값이 정규표현에 맞는지 체크
// phone numberㅍ으로 입력한 값이 정규표현에 맞는지 체크
else // 모든 정보가 맞을 경우JOptionPane.showMessageDialog( this, "Thank you" );
} // end method validateDate
} // end class ValidateFrame
고급 프로그래밍 Swing Component 프로그래밍 9
실습과제 7-1 실행결과
고급 프로그래밍 Swing Component 프로그래밍 10
실습과제 7-2 (숫자 맞추기)
Math.random()(0.0~ 1.0 사이의 double 값 반환)을 사용하여 1~1000사이의 수를 생성한다.생성된 숫자를 사용자가 숫자를 입력하여 맞추는 숫자 맞추기 게임을 작성한다.사용자 입력은 TextField를 통해 엔터키를 누르면값을 입력 받는다.(입력 값 int형으로 변환 필요)입력 값이 맞출 값(랜덤 값)보다 작으면 파란색 배경화면, 크면 빨간색 배경화면, 일치할 경우 회색배경화면으로 전환한다.[New Game] 버튼을 통해 새로운 게임을 시작한다.
고급 프로그래밍 Swing Component 프로그래밍 11
실습과제 7-2 (실행결과)
고급 프로그래밍 Swing Component 프로그래밍 12
실습과제 7-2 (실행결과)
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 13
실습과제 7-3
스윙을 이용한 은행 관리 프로그램을 작성한다.
다양한 Layout을 적용할 수 있다.
JButton, JTextField와 같은 여러가지Components등을 사용할 수 있다.
GUI 프로그램으로부터 입력을 받아 Bank 클래스를 조작할 수 있다.
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 14
실습 과제 설명
Bank GUI와 기존 Banking 패키지를 이용하여 간단한 은행 관리프로그램을 만든다.Bank는 은행에서 사용하는 GUI부분으로 Customer와 Account에관련된 모든 일을 수행한다.Bank에서는 <고객추가>, <계좌추가>, <계좌정보>의 기능을 가진다.<고객추가>는 고객이름, 연락처, 성별 등을 입력 받아 고객을 등록시킨다.<계좌추가>는 생성된 고객에 대한 계좌번호, 계좌타입, 초기금액을 입력 받아 계좌를 생성한다.<계좌정보>는 고객에 따른 계좌타입, 계좌번호, 초기금액 등을보여준다.
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 15
Bank GUI UML(1)
Bank Information
+JLabel : title
+Jlist : printInfo
+JButton : addCustomer, addAccout, printAccoutInfo, end
BANK GUI
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 16
Bank GUI UML(2)
Customer Infomaition Account Information
+JLabel : Name, Phone
+JTextField :Name, Phone
+JRadioButton : Male, Female
+JButton : AddCustomer, Cacel
+JLabel : Name, Balance,
Account
+JcomboBox : Name,
AccountType
+JTextField : Account, Balance
+JButton : AddAccount,
Cancel
BANK GUI
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 17
Bank 클래스 UML
Bank-numberOfCustomers : int
+Bank()
+addCustomer( n : String, p : String, s String )
+getNumOfCustomers() : int
+getCustomer( index : int ) : Customer
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 18
Customer 클래스 UML
Customer-name : String
-phone : String
-sex : String
-numberOfAccounts : int
+Customer( n : String, p : String, s : String)
+getName() : String
+getPhone() : String
+getSex() : String
+addAccount( accnt : Account )
+getAccount( index : int ) : Account
+getNumOfAccounts() : int
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 19
Account 클래스 UML
Account-acctNumber : String
-balance : double
+Account( acct_num : String, init_balance : double )
+getAccoutNumber() : String
+getAccoutType() : String
+getBalance() : double
+deposit( amt : double ) : boolean
+withdraw( amt : double ) : boolean
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 20
SavingsAccount 클래스 UML
SavingsAccount
+SavingsAccount(acct_num : String, init_balance : double )
+getAccoutType() : String
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 21
CheckingAccount 클래스 UML
CheckingAccout
+CheckingAccount(acct_num : String, init_balance : double )
+getAccoutType() : String
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 22
Banking 패키지
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 23
실행 결과(1) - 메인화면
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 24
실행 결과(2) - 고객추가
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 25
실행 결과(3) –계좌 추가
Java 프로그래밍 Swing을 사용한 사용자 인터페이스 26
실행 결과(4) -계좌정보