Bài giảng Lập trình hướng đối tượng (dùng Java) Chương 5 Lập trình giao diện với Java cung cấp cho người học các kiến thức Giới thiệu về lập trình giao diện, nguyên lý xử lý sự kiện trong Java, các thành phần giao diện cơ bản trong AWT, tổ chức giao diện với Layout Manager,... Mời các bạn cùng tham khảo.
Chương Lập trình giao diện với Java TRẦN MINH THÁI Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Cập nhật: 02 tháng 07 năm 2016 Nội dung #2 Giới thiệu lập trình giao diện Nguyên lý xử lý kiện Java Các thành phần giao diện AWT Tổ chức giao diện với Layout Manager Lập trình Applet Lập trình ứng dụng với SWING Giới thiệu lập trình giao diện #3 Tập hợp lớp java cung cấp hỗ trợ thiết kế, xây dựng GUI (Graphic User Interface) bao gồm thư viện: • awt (java.awt.*): lớp lập trình GUI, phát triển IBM • swing (javax.swing.*): dễ dàng mềm dẻo lập trình GUI Giới thiệu AWT #4 • AWT viết tắt Abstract Windowing Toolkit • AWT tập hợp lớp Java cho phép tạo GUI • Cung cấp mục khác để tạo hoạt động hiệu ứng GUI – import java.awt.*; – import java.awt.event.*; Giới thiệu AWT #5 • java.awt gồm lớp GUI • Các lớp Container – lớp chứa (Frame, Panel, Dialog, ScollPanel) • Các lớp Component (như Button, TextComponent, Label) • Các lớp quản lý layout(FlowLayout, BorderLayout, GridLayout) • Các lớp đồ họa tùy biến(Graphics, Color, Font) Giới thiệu AWT #6 • java.awt.event gồm lớp xử lý kiện giao diện • Các lớp kiện (ActionEvent, KeyEvent WindowEvent) • Các giao diện KeyListener ) nghe MouseEvent, kiện(MouseListener, • Các lớp Adapter (MouseAdapter, KeyAdapter) AWTEvent #7 Font FontMetrics Object Color Graphics Component Container Panel Applet Button Window Frame Label TextField Dialog TextComponent List TextArea Choice CheckBox LayoutManager CheckBoxGroup Canvas MenuComponent Scrollbar MenuItem MenuBar Menu FileDialog Nguyên tắc xây dựng GUI #8 Lựa chọn container: Frame, Window, Dialog, Applet, … Tạo control: (buttons, text areas, list, choice, checkbox, ) Đưa control vào vùng chứa Sắp xếp control vùng chứa (Layout) Thêm xử lý kiện (Listeners) Container Component #9 • Container: chứa component, vẽ tơ màu • Bản thân container component • Một container chứa container khác • Phương thức add(Component): thêm component vào container • Component: đối tượng tạo nên giao diện • Cho phép người dùng tương tác với chương trình Ví dụ #10 @Override public void mouseClicked(MouseEvent e) { if(e.getButton()==MouseEvent.BUTTON3) myMenu.show(e.getComponent(), e.getX(), e.getY()); } #83 @Override public void mousePressed(MouseEvent e) {} @Override public void mouseReleased(MouseEvent e) {} @Override public void mouseEntered(MouseEvent e) {} @Override public void mouseExited(MouseEvent e) {} public static void main(String []args){ ViDuPopupMenu vd = new ViDuPopupMenu(); vd.setVisible(true); } } Applet #84 • Là chương trình Java gọi ứng dụng khác • Thường trình duyệt Web có hỗ trợ Java • Applet thể multimedia, tạo tương tác với user Cấu trúc tổng quát Applet import java.applet.Applet; #85 import java.awt.*; public class ViDuApplet extends Applet { // Khai báo thuộc tính public void init() { // Khởi tạo thuộc tính, load hình ảnh } public void start() { // Kích hoạt } public void stop() { // Dừng } public void destroy() { // Dọn dẹp trước thoát applet } Cấu trúc tổng quát Applet #86 public void paint(Graphics g) { // Các thao tác vẽ } public void repaint(Graphics g) { // Tự động gọi update() } public void update(Graphics g) { // Tự động gọi paint() } //Các phương thức khác } Vòng đời Applet #87 Vịng đời Applet #88 • init(): Chỉ gọi applet bắt đầu thực thi • start(): Được gọi sau init() applet trở lại • paint(): Được gọi sau trình duyệt init và start, và gọi lại trình duyệt vẽ lại • stop(): Được gọi applet thu nhỏ • destroy(): Được gọi applet kết thúc (tắt trình duyệt) Sử dụng Applet #89 • Để thực thi applet, tạo tập tin HTML có sử dụng thẻ applet thẻ object • Thẻ applet/object có hai thuộc tính: Width, Height