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

Post on 21-May-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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) -계좌정보

top related