Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
1,52 MB
Nội dung
LECTURE 13JAVABEANS PHẦN 1 TỔNG QUAN JAVABEANS 3 KHÁI NIỆM JAVABEANS • Kiến trúc JavaBean TM dựa trên mô hình component. Mô hình này cho phép các nhà phát triển phần mềm tạo ra các đơn vị phần mềm có tên gọi là component. • Các component đuợc lắp ghép vào các applet, các ứng dụng, các servlet hoặc vào các component phức tạp hơn bằng các công cụ phát triển phần mềm trực quan. • Các JavaBean component được gọi là beans. • Beans có thể được thay đổi, tùy biến theo ý muốn. Ta có thể chọn beans từ toolbox, kéo thả vào ứng dụng, hiệu chỉnh hành vi và diện mạo của bean, định nghĩa sự tương tác của bean với các bean khác, tích hợp beans vào các ứng dụng, vào applet hoặc vào các beans mới. 4 • GUI (graphical user interface) • Non-visual beans Các beans khác nhau về chức năng và mục đích sử dụng. Quá trình lập trình trong thực tiễn, chúng ta sẽ thấy một số loại beans sau: CÁC LOẠI JAVABEANS 5 MỘT SỐ KHÁI NIỆM TRONG JAVABEANS • Properties: là các đặc điểm về diện mạo và hành vi của bean, chúng được thay đổi lúc thiết kế. Các thuộc tính của bean được các introspector phân tích rồi hiển thị ra giúp cho người thiết kế chương trình có thể thao tác được trên bean. • Event: được các bean dùng để giao tiếp với nhau. Listener bean là bean nhận events. Source bean là bean phát ra event. • Introspection: (phân tích bên trong) dùng để khám phá các đặc điểm của bean • Customization: cấu hình tùy biến lúc thiết kế được thực hiện nhờ thấy được các thuộc tính của bean. • Persistence: cho phép các bean lưu trữ và phục hồi các trạng thái của chúng. • Methods: các phương thức 6 Thuộc tính của Beans public class xBean { private String myName; public String getName() { return myName;} public void setName(String newName) { myName=newName;} } 7 Bound Property – Thuộc tính liên quan • JavaBean là một thành phần riêng biệt nhưng nó vẫn có thể tương tác với các đối tượng khác thông qua truyền thông điệp (message). • Khi một thuộc tính của Bean A thay đổi nó có thể thông báo cho các đối tượng khác biết. Để thông báo sự thay đổi, ta phải cài đặt 2 phương thức sau: public void add<PropertyName>Listener (PropertyChangeListener lst) public void remove<PropertyName>Listener (PropertyChangeListener lst) 8 Bound Property public class BeanA { float size; private PropertyChangeSupport changeSize=new PropertyChangeSupport (this); public float getSize() { return size; } public void setSize(float newSize) { float oldSize = size; size = newSize; if (oldSize!=newSize) // gửi thông báo thay đổi thuộc tính đến các listener changeSize.firePropertyChange ("size", new Float(oldSize), new Float(newSize)); } public void addSizeListener (PropertyChangeListener lst){} public void removeSizeListener (PropertyChangeListener lst){} } Bound Property (đối tượng lắng nghe) • Các đối tượng muốn nhận thông báo từ JavaBean đều phải cài đặt giao diện PropertyChangeListener và cài đè phương thức public void propertyChange (PropertyChangeEvent evt) {} • Và để các đối tượng Listener có thể nhận biết được sự thay đổi của các thuộc tính, ta phải gọi phương thức firePropertyChange của đối tượng PropertyChangeSupport từ thành phần của Bean nguồn. public void firePropertyChange (String propertyName, Object oldValue, Object newValue) Phương thức này sẽ gửi thông báo đến mọi đối tượng Listener. 9 Bound Property – Ví dụ import java.beans.*; public class BeanA { private float size; PropertyChangeSupport changeSize = new PropertyChangeSupport(this); public float getSize() { return size; } public void setSize(float newSize) { float oldSize = size; size = newSize; if(oldSize!=newSize) changeSize.firePropertyChange("size", new Float(oldSize), new Float(newSize)); } public void addSizeListener(PropertyChangeListener lst) { changeSize.addPropertyChangeListener(lst);} public void removeSizeListener(PropertyChangeListener lst) { changeSize.removePropertyChangeListener(lst);} } 10 [...]... chuỗi BeansExample để đặt tên cho project • Ở phần Create Main Class, nhập vào chuỗi BeansExample • Nhấp Finish để hoàn tất việc tạo project này 23 TẠO MỘT NETBEANS PROJECT (tt) 24 TẠO MỘT NETBEANS PROJECT (tt) 25 VIẾT FILE SimpleBeanJLabel .java SimpleBeanJLabel là một ví dụ về visual JavaBean • Nhấp phải BeansExample rồi chọn New- >Java Class • Quan sát thấy vùng Name and Location của hộp thoại New Java. .. FILE SimpleBeanJLabel .java (tt) • Ở phần Class Name, nhập vào chuỗi SimpleBeanJLabel • Nhấp Finish 27 VIẾT FILE SimpleBeanJLabel .java (tt) • Quan sát sẽ thấy có SimpleBeanJLabel .java vừa mới xuất hiện trong vùng soạn thảo của NB6.5, viết code cho file này như sau: /* SimpleBeanJLabel .java* / import java. awt.Color; import java. beans. XMLDecoder; import javax.swing.JLabel; import java. io.Serializable;... Instrospector của java giúp ta xử lý vấn đề này Phương thức quan trong của lớp này là getBeanInfo trả về lớp BeanInfo 20 PHẦN 2 TẠO VÀ SỬ DỤNG JAVABEAN ĐƠN GIẢN CÁC PHẦN MỀM CẦN CÀI ĐẶT 1) Java Standard Development Kit (JDK™) version 6.0 - Download tại: http:/ /java. sun.com/javase/downloads/index.jsp - Hướng dẫn cài đặt tại: http://www.javapassion.com/handsonlabs/ javaprogenv/index.html#0.1 2) NetBeans IDE... 2) NetBeans IDE - Download tại: http://www.netbeans.org/downloads/index.html - Hướng dẫn cài đặt tại: http://www.javapassion.com/handsonlabs/ javaprogenv/index.html#0.2 22 TẠO MỘT NETBEANS PROJECT • Chạy phần mềm NetBeans 6.5 lên • Chọn File từ top-level menu rồi chọn New Project • Hộp thoại New Project xuất hiện • Chọn Java trong phần Categories và chọn Java Application trong phần Projects • Nhấp Next... hiện • Chọn Java trong vùng Categories rồi chọn Java Application trong vùng Projects • Nhấp Next • Trong vùng Name and Location, ở vùng Project Name, ta nhập chuỗi BeansUserExample • Ở phần Create Main Class, nhập chuỗi BeansUserExample • Nhấp Finish Quan sát trong NB6.5 ta thấy project vừa mới tạo là BeansUserExample đã xuất hiện trong vùng Projects và thấy xuất hiện BeansUserExample .java trong cửa... cách như sau: nhấp phải node BeansExample trong vùng Project rồi chọn Build (hoặc Run), kết quả sẽ tạo ra tập tin jar chứa SimpleBeanJLabel bean 32 TẠO TẬP TIN JAR (tt) • Trong thư mục C:\myjavafxprojects\BeansExample\dist ta thấy có tập tin BeansExample.jar Xem nội dung của tập tin jar này trong NB6.5 như sau: 33 ĐƯA BEAN VÀO BUIDER TOOL Tạo một NetBeans Project mới có tên là BeansUserExample: • Chọn... CENTER ); } } 28 VIẾT FILE SimpleBeanJLabel2 .java • Với các bước làm tương tự như SimpleBeanJLabel, ta tạo tiếp SimpleBeanJLabel2 .java SimpleBeanJLabel2 có thêm một thuộc tính (property) của chính nó là labelType 29 VIẾT FILE SimpleBeanJLabel2 .java (tt) 30 VIẾT FILE SimpleBeanJLabel2 .java (tt) • Nội dung của SimpleBeanJLabel2 .java như sau: /* SimpleBeanJLabel2 .java* / public class SimpleBeanJLabel2 extends... PropertyVetoException("Gia tri gan cho Size lon hon 100", evt); } } 15 Event • JavaBean có khả năng nghe các sự kiện do các đối tượng khác gửi đến Để có thể nghe và xử lý các sự kiện do đối tượng khác gửi đến, ta phải cài đặt các giao tiếp tương ứng Ví dụ để lắng nghe các sự kiện về chuột, ta cài đặt giao tiếp MouseListener: import java. awt.event.MouseListener; import java. awt.event.MouseEvent; public class Bean3 implements... 18 Event (Lắng nghe) class MyListener1 extends java. awt.event.MouseAdapter { MouseBean adaptee; MyListener1(MouseBean adaptee) { this.adaptee = adaptee; } public void mouseClicked(MouseEvent e) { adaptee.jButton1_mouseClicked(e); } } 19 Instrospector • Vấn đề khi bạn kéo thả một javabean vào Form, làm thế nào đề môi trường trực quan này biết được trong javabean có những thuộc tính nào? • Giải quyết... phải thực hiện thông báo bằng phương thức fireVetoableChange của VetoableChangeSupport như sau: public void fireVetoableChange (String propertyName, Object oldValue, Object newValue) 13 Constrain Property - Ví dụ import java. beans. *; public class BeanB { private int size = 0; private VetoableChangeSupport vetoAgent = new VetoableChangeSupport(this); public int getSize() { return size; } public void setSize(int . LECTURE 13 JAVA BEANS PHẦN 1 TỔNG QUAN JAVABEANS 3 KHÁI NIỆM JAVA BEANS • Kiến trúc JavaBean TM dựa trên mô hình component. Mô hình này cho. Quá trình lập trình trong thực tiễn, chúng ta sẽ thấy một số loại beans sau: CÁC LOẠI JAVA BEANS 5 MỘT SỐ KHÁI NIỆM TRONG JAVABEANS • Properties: là các đặc điểm về diện mạo và hành vi của bean,. của bean với các bean khác, tích hợp beans vào các ứng dụng, vào applet hoặc vào các beans mới. 4 • GUI (graphical user interface) • Non-visual beans Các beans khác nhau về chức năng và mục