swing component swing component 프로그래밍 · 2015-01-21 · 고급프로그래밍 swing...

26
Swing Component 프로그래밍 Swing Component 프로그래밍 Lab Exercise #7 Lab Exercise #7 2007 봄학기 고급 프로그래밍 김영국 충남대 전기정보통신공학부

Upload: others

Post on 21-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Swing Component 프로그래밍Swing Component 프로그래밍

Lab Exercise #7Lab Exercise #7

2007 봄학기

고급 프로그래밍

김 영 국충남대 전기정보통신공학부

Page 2: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 Swing Component 프로그래밍 2

실습 내용

실습과제 7-1 :정규 표현식을 이용한 사용자 정보의 유효성 검사

(ATM에서 사용자 등록 용도로 사용 가능)

실습과제 7-2 : 숫자 맞추기 게임

실습과제 7-3 :은행 관리 프로그램

Page 3: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 Swing Component 프로그래밍 3

정규표현 식에서의 한정사 사용

한정사 설명

* 일치하는 문자열이 없거나 하나이상 있다.

+ 일치하는 문자열이 하나 있다.

? 일치하는 문자열이 없거나 하나 있다.

{n} 일치하는 문자열이 정확히 n개 있다.

{n,} 일치하는 문자열이 적어도 n개 있다.

{n,m} 일치하는 문자열이 n개 이상 m개 있다.

[0-9a-zA-Z] 숫자와 알파벳의 조합 문자열

Page 4: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 Swing Component 프로그래밍 4

실습과제 7-1(1)

Jlabel : 읽기 전용 텍스트나 이미지를 보

여주는데 사용

JTextField : 사용자가 키보드를 통해서텍스트 입력받거나프로그램이 텍스트보여줄 수 있는 단

행 영역

JPasswordField :사용자가 문자를 입력할때 실제 문자를

감춘다

JButton :사용자가 클릭할때특정 행위가 일어나도록 함

command, check box, radio, toggle 등이 있다.

Page 5: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 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();} } );

Page 6: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 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 );

}

Page 7: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 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" );

Page 8: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 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

Page 9: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 Swing Component 프로그래밍 9

실습과제 7-1 실행결과

Page 10: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 Swing Component 프로그래밍 10

실습과제 7-2 (숫자 맞추기)

Math.random()(0.0~ 1.0 사이의 double 값 반환)을 사용하여 1~1000사이의 수를 생성한다.생성된 숫자를 사용자가 숫자를 입력하여 맞추는 숫자 맞추기 게임을 작성한다.사용자 입력은 TextField를 통해 엔터키를 누르면값을 입력 받는다.(입력 값 int형으로 변환 필요)입력 값이 맞출 값(랜덤 값)보다 작으면 파란색 배경화면, 크면 빨간색 배경화면, 일치할 경우 회색배경화면으로 전환한다.[New Game] 버튼을 통해 새로운 게임을 시작한다.

Page 11: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 Swing Component 프로그래밍 11

실습과제 7-2 (실행결과)

Page 12: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

고급 프로그래밍 Swing Component 프로그래밍 12

실습과제 7-2 (실행결과)

Page 13: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 13

실습과제 7-3

스윙을 이용한 은행 관리 프로그램을 작성한다.

다양한 Layout을 적용할 수 있다.

JButton, JTextField와 같은 여러가지Components등을 사용할 수 있다.

GUI 프로그램으로부터 입력을 받아 Bank 클래스를 조작할 수 있다.

Page 14: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 14

실습 과제 설명

Bank GUI와 기존 Banking 패키지를 이용하여 간단한 은행 관리프로그램을 만든다.Bank는 은행에서 사용하는 GUI부분으로 Customer와 Account에관련된 모든 일을 수행한다.Bank에서는 <고객추가>, <계좌추가>, <계좌정보>의 기능을 가진다.<고객추가>는 고객이름, 연락처, 성별 등을 입력 받아 고객을 등록시킨다.<계좌추가>는 생성된 고객에 대한 계좌번호, 계좌타입, 초기금액을 입력 받아 계좌를 생성한다.<계좌정보>는 고객에 따른 계좌타입, 계좌번호, 초기금액 등을보여준다.

Page 15: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 15

Bank GUI UML(1)

Bank Information

+JLabel : title

+Jlist : printInfo

+JButton : addCustomer, addAccout, printAccoutInfo, end

BANK GUI

Page 16: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

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

Page 17: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 17

Bank 클래스 UML

Bank-numberOfCustomers : int

+Bank()

+addCustomer( n : String, p : String, s String )

+getNumOfCustomers() : int

+getCustomer( index : int ) : Customer

Page 18: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

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

Page 19: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

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

Page 20: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 20

SavingsAccount 클래스 UML

SavingsAccount

+SavingsAccount(acct_num : String, init_balance : double )

+getAccoutType() : String

Page 21: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 21

CheckingAccount 클래스 UML

CheckingAccout

+CheckingAccount(acct_num : String, init_balance : double )

+getAccoutType() : String

Page 22: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 22

Banking 패키지

Page 23: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 23

실행 결과(1) - 메인화면

Page 24: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 24

실행 결과(2) - 고객추가

Page 25: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 25

실행 결과(3) –계좌 추가

Page 26: Swing Component Swing Component 프로그래밍 · 2015-01-21 · 고급프로그래밍 Swing Component 프로그래밍 3 정규표현식에서의한정사사용 한정사 설명

Java 프로그래밍 Swing을 사용한 사용자 인터페이스 26

실행 결과(4) -계좌정보