1. Trang chủ
  2. » Giáo án - Bài giảng

Slide LẬP TRÌNH JAVABEANS

29 455 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề JavaBeans
Tác giả Lê Tân
Trường học Bộ môn: Lập trình máy tính
Thể loại Bài giảng
Định dạng
Số trang 29
Dung lượng 136 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung chương 02Tổng quan về JavaBeans Công nghệ phần mềm dựa trên các thành phần Các thuộc tính của thành phần JavaBeans Introspector Xử lý sự kiện của thành phần JavaBeans Các bư

Trang 1

LẬP TRÌNH JAVA NÂNG CAO

Chương 02: JavaBeans

Lê Tân

Bộ môn: Lập trình máy tính

Trang 2

Nội dung chương 02

Tổng quan về JavaBeans

Công nghệ phần mềm dựa trên các thành phần Các thuộc tính của thành phần JavaBeans

Introspector

Xử lý sự kiện của thành phần JavaBeans

Các bước xây dựng JavaBeans

Lớp BeanInfo

Tích hợp JavaBeans với các thành phần khác

Trang 3

Giới thiệu JavaBeans

Trang 4

Định nghĩa

JavaBeans là một thành phần phần mềm tái sử

dụng được, có thể thao tác một cách trực quan

trong ‘builder tool’.

JavaBeans API cung cấp một framework cho phép định nghĩa các thành phần phần mềm có thể nhúng

và tái sử dụng được.

JavaBeans là những giao tiếp lập trình được, để

tạo ra những khối mã xây dựng sẵn và có thể dùng lại được

Trang 5

Công nghệ phần mềm dựa trên thành phần

Nhu cầu sử dụng lại mã

– Công nghệ phần mềm thay đổi nhanh chóng

– Tính phức tạp của dự án cùng với khối lượng các đoạn mã lệnh khổng lồ

Xây dựng phần mềm từ các thành phần

– Phần mềm được lắp ráp từ các thành phần – Thành phần là những đối tượng nhỏ độc lập hoàn toàn với ứng dụng (ví dụ: button)

Trang 6

Các thuộc tính của thành phần JavaBeans

Thuộc tính: biểu diễn trạng thái của Beans

– Biểu diễn trạng thái của thành phần JavaBeans

– Thay đổi thuộc tính sẽ thay đổi diện mạo và hành vi của thành phần

Thay đổi thuộc tính của thành phần

– Thay đổi trực tiếp bằng các dòng lệnh – Sử dụng các công cụ trực quan (ví dụ JBuilder)

Các phương thức truy cập: setter/getter

Trang 7

public type getXXX(int index);

public type[] getXXX();

Trang 8

Thuộc tính thể hiện sự thay đổi

Bound properties: Phát sinh sự kiện khi thay đổi giá trị

Cài đặt một thuộc tính thông báo cho các thành phần Beans khác biết khi nó thay đổi giá trị: cài

đặt hai phương thức đăng ký và loại bỏ đối tượng

Trang 9

private int size = 0;

public int getSize(){ return size;

}

public void setSize(int newSize){

int oldSize = size; size = newSize;

changeAgent.firePropertyChange("size", new Integer(oldSize), new

Trang 10

Ví dụ: Sử dụng A

import java.util.*; import java.beans.*;

public class UseA{

public static void main(String[] arg){

A bean = new A();

bean.addSizeListener(new myListenerA()); bean.setSize(11); }

}

class myListenerA implements PropertyChangeListener {

public void propertyChange (PropertyChangeEvent e) {

Integer newVal = (Integer)e.getNewValue();

Integer oldVal = (Integer)e.getOldValue();

String propName = e.getPropertyName();

System.out.println("Change " + propName + " from " + oldVal + " to " + newVal);

}

}

Trang 11

Thuộc tính ràng buộc

Thuộc tính ràng buộc (Constrained properties)

– Phát sinh sự kiện khi thay đổi giá trị và cho phép listeners

“phản đối” sự thay đổi đó.

– Đăng ký đối tượng listener cho thuộc tính ràng buộc: cài đặt hai phương thức

public void addVetoableChangeListener (VetoableChangeListener lsn){

Trang 12

public int getSize(){return size; }

public void setSize(int newSize){

int oldSize = size;

Trang 13

Ví dụ: Sử dụng B

import java.util.*; import java.beans.*;

public class UseB{

public static void main(String[] arg){

B bean = new B();

bean.addSizeListener(new myListenerB());

bean.setSize(10);System.out.println("> size after setting " + bean.getSize()); bean.setSize(130);System.out.println("> size after setting " + bean.getSize()); }

}

class myListenerB implements VetoableChangeListener {

public void vetoableChange (PropertyChangeEvent e) throws

throw (new PropertyVetoException("Value greater than 100", e)); }

System.out.println("Change " + pName + " from " + oV + " to " + nV);

}}

Trang 14

Introspection là bộ phân tích, qua đó Java xem xét các đoạn mã của chương trình để tìm ra

những phương thức dùng để xây dựng và áp dụng cho từng thuộc tính cũng như tình huống

cụ thể.

Ví dụ:

public int getWeight()

public void setWeight(int newWeight)

Tạo một thuộc tính tên Weight có kiểu int

Trang 15

Phương thức mẫu cho thuộc tính

Trang 16

Phương thức mẫu cho sự kiện

Trang 17

Xử lý sự kiện

Nguồn sự kiện (event source): đối tượng sản sinh sự kiện.

Đối tượng tiếp nhận và xử lý sự kiện phát sinh

từ đối tượng khác: đối tượng listener

Trang 18

Sự kiện bên trong

Bản thân hệ thống là nơi phát sinh sự kiện

Đối tượng listener là thành phần JavaBeans

ComponentListener: nhận biết sự kiện đối tượng thay đổi kích

thước (resize), di chuyển (move), hiện ra (show) hay ẩn đi (hidden) FocusListener: sự kiện đối tượng nhận Focus.

KeyListener: sự kiện xuất phát từ bàn phím

MouseListener: sự kiện xuất phát từ chuột

MouseMotionListener: sự kiện di chuyển chuột

WindowListener: sự kiện xuất phát từ cửa sổ (đóng, mở, thu nhỏ ) ActionListener: sự kiện mà đối tượng sẽ thực hiện một tác vụ

AdjustmentListener: sự kiện đối tượng thay đổi giá trị

ItemListener: sự kiện đối tượng thay đổi trạng thái (ví dụ

Checkbox)

Trang 19

Xử lý sự kiện bên trong

Cách 1: tạo ra một đối tượng listener riêng biệt rồi đăng

ký với hệ thống Ví dụ:

public class BeanTest extends Panel {

addMouseListener( new Mylistener());

}

class Mylistener implements MouseListener{

public void mouseClicked(MouseEvent e) {

System.out.println(“Mouse click”);

}

public void mousePressed(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

}

Trang 20

Xử lý sự kiện bên trong (tt)

Cách 2: bản thân thành phần JavaBeans cài đặt cho các giao tiếp listener và đăng ký với hệ thống thông qua

public void mousePressed(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

}

Trang 21

Sự kiện tương tác

Bản thân thành phần JavaBeans là nơi phát sinh

sự kiện

Đối tượng listener là các đối tượng khác

Đăng ký đối tượng listener với thành phần

JavaBeans

public void add<EventListener> (<EventListener> e)

public void remove<EventListener> (<EventListener> e)

Trang 22

Xây dựng một JavaBean

Chuẩn bị:

Mục đích của thành phần JavaBeans?

Các chức năng của thành phần JavaBeans?

Hướng phát triển của thành phần JavaBeans?

Thiết kế:

Thiết kế thuộc tính

Thiết kế phương thức

Thiết kế sự kiện

Kiểm tra JavaBeans

Thuộc tính phải thể hiện đúng bản chất

Phương thức phải hỗ trợ được tính năng mà thành phần JavaBeans cung cấp

Sự kiện phải kết nối được với thành phần JavaBeans khác

Đóng gói JavaBeans

Trang 23

Đóng gói JavaBeans

Lớp BeanInfo.class: Chứa thông tin về các thuộc tính, phương thức, tình huống, biểu tượng mà thành phần JavaBeans cung cấp

Tập tin kê khai (manifest file): Liệt kê tất cả các tập tin mà thành phần JavaBeans sử dụng.

Trang 25

ICON để biểu diễn Bean

Giao diện Customizer (wizard for set up)

Tham chiếu Property Editor

Liệt kê các đặc tính với descriptions

Liệt kê các phương thức với descriptions

Phương thức thiết lập các đặc tính mặc định

MyBean mb = new MyBean();

BeanInfo bi = Introspector.getBeanInfo(mb.getClass());

Trang 26

Các phương thức của BeanInfo

public MethodDescriptor[] getMethodDescriptors() public PropertyDescriptor[] getPropertyDescriptors() public EventSetDescriptor[] getEventSetDescriptors() public BeanDescriptor getBeanDescriptor()

Trang 27

Các phương thức của PropertyDescriptor

public Class getPropertyType()

public boolean isConstrained()

Trang 29

Cài đặt Bean

Beanbox: Sao chép file jar đến thư mục

/jars trong thư nục BDK

Sự khác biệt phụ thuộc vào công cụ được sử dụng

Ngày đăng: 16/04/2014, 14:28

TỪ KHÓA LIÊN QUAN

w