Prepared by MSc Luong Manh Ba
Tương tác người máy Human Computer Interaction - HCI
Department of Software Engineering Faculty of Information Technology Hanoi University of Technology
TEL: 04-8682595 FAX: 04-8692906 Email: cnpm@it-hut.edu
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 1
Prepared by MSc Luong Manh Ba
Cấu trúc môn học
• 60 tiết LT+ đồ án môn học + bài tập • Cần các kiến thức cơ bản về CNTT, đồ hoạ,
tâm lý nhận thức, công thái học
• Cung cấp những nguyên lý chung về tương
tác người máy
• Cung cấp những kiến thức cần thiết để học các môn chuyên ngành hẹp và áp dụng vào thiết kế, xây dựng, đánh giá phần mềm.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 2
Prepared by MSc Luong Manh Ba
Cấu trúc môn học (tiếp)
• Nội dung môn học: 3 phần 10 chương I- Phần I Phần cơ sở (foundation) gồm 4 chương:
Chương 0: Tổng quan về HCI Chương I: Tâm lý nhận thức của Con người trong giao tiếp và xử lý Chương II: Nhân tố Máy tính trong tương tác
người máy
Chương III: Các dạng đối thoại trong tương tác người máy (Dialogue styles for HCI)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 3
Prepared by MSc Luong Manh Ba
Cấu trúc môn học (tiếp) II-Phần II Phân tích và thiết kế giao tiếp người
dùng (User Interface Analyse and Design) Chương IV: Các nguyên tắc chính và vòng đời hình sao trong thiết kế giao tiếp Người dùng – Máy tính
Chương V: Mô hình GOM, Keytrock,… (GOM
and Keytrock Models)
Chương VI: Đặc tả yêu cầu người dùng và phân
tích nhiệm vụ Chương VII: Ký pháp đối thoại và thiết kế
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 4
Prepared by MSc Luong Manh Ba
Cấu trúc môn học (tiếp)
III-Phần III Cài đặt và đánh giá tương tác người dùng (Users Interface Implementation and Evaluation ) gồm 2 chương:
Chương VII: Hỗ trợ Cài đặt (Implementation) Chương VIII: Các kỹ thuật đánh giá phần mềm
(Evaluation Techniques) • Đánh giá: Đồ án môn học + Bài tập
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 5
Prepared by MSc Luong Manh Ba
Tài liệu tham khảo (Reference)
[1] Jenny Preece et al: Human-Computer Interaction,
Addison-Wesley, 1994
[2] Dix, Finlay, Abowd and Beale: Human -Computer
Interaction (course and book), Prentice-Hall, second edition, 1993 (http: //www.hcibook.com/hcibook/toc.html) [3] Gary Perlman, Ohio State University: User
Interface
development (course), SEI Curriculum Module, 11-1989
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 6
Prepared by MSc Luong Manh Ba
Tài liệu tham khảo (tiếp)
[4] C.Machgeels: Interfaces Humains- ordinateur (cours),
Département Informatique, ULB, 2001-2002
[5] J.Coutas, Interface Home-ordinareur,
Conception et réalisation, Dunod Paris 1990 (Bá) (Nghiêng về hướng tâm lý khoa học nhận thức)
[6] Andy Downton, Engineering the Human- Computer Interface , McGraw Hill 1992. [7] J.P.Menadier, l’Interface uilisateur pour une
Informatique plus conviale, Dunod Paris 1991.
[8] Sommerville, Software Engineering (chapter 17-
User Interface), Addison 1996 (BM)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 7
Prepared by MSc Luong Manh Ba
Tài liệu tham khảo (tiếp)
[9] Dự thảo ®Ò c¬ng m«n häc HCI- PGS Nguyễn Văn Ba
khoa CNTT.
[10] Bản đề cương HCI (Human Computer Interface -Hiệp
hội CNPM ACM & IEEE ). course CS1 (Use Interface Design and Development) [11] W.Brener, R. Zarnekow, H. Witig: Software
Intelligent Agents. 1998.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 8
Prepared by MSc Luong Manh Ba
Chương 0: Tổng quan về HCI
0.1. Thuật ngữ và khái niệm 0.2. Người dùng 0.3. Môi trường 0.4 Lĩnh vực liên quan 0.5. Chất lượng 0.6. Phương tiện và công cụ 0.7. Đầu vào 0.8. Đầu ra 0.9. Công cụ (Tools)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 9
Prepared by MSc Luong Manh Ba
0.1 Định nghĩa và khái niệm
• HCI: Human-Computer Interaction • CHI: Computer – Human Interaction • IHO: Interaction Humains Ordinateur • IHM: Interaction Homme Machine • Tương tác người máy
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 10
Prepared by MSc Luong Manh Ba
Định nghĩa (tiếp)
• Không có định nghĩa chính xác .Tuy nhiên có thể dùng
hai định nghĩa: • Định nghĩa 1
Tập các quá trình, đối thoại và các hành động, qua đó ND con người sử dụng và tương tác với MT (Backer & Buxton, 1987).
• Định nghĩa 2
Là một lĩnh vực liên quan đến thiết kế, đánh giá và cài đặt Hệ thống MT tương tác cho con người sử dụng và nghiên cứu các hiện tượng chính xảy ra trên đó (ACMSIGCHI 1992).
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 11
Prepared by MSc Luong Manh Ba
Định nghĩa và vai trò của HCI (tiếp)
Vai trò của HCI: Tạo ra các Hệ Thống an toàn và sử dụng được (Usability) như các Hệ Thống chức năng. Usability: Là khái niệm trong trong HCI có thể hiểu là làm cho HT dễ học và dễ dùng.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 12
Prepared by MSc Luong Manh Ba
0.2 Người dùng
• Trước đây:
- Là các kỹ thuật viên, chuyên gia
• Hiện nay: Đa dạng
- Người dùng đầu cuối (có ít kiến
thức về tin học)
- Các kỹ thuật viên, chuyên gia - Yêu cầu đòi hỏi cao
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 13
Prepared by MSc Luong Manh Ba
0.3 Môi trường làm việc
• Trước đây:
- Máy tính lớn, không nối mạng - Người sử dụng máy tính không phải là người thao tác, điều khiển máy tính. - Môi trường: văn bản dạng text
• Ngày nay :
- Máy tính cá nhân, mạng, internet - Môi trường: đa dạng, văn bản, đồ hoạ, trực quan
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 14
Prepared by MSc Luong Manh Ba
0.4 Lĩnh vực liên quan
• Trước đây : Phương pháp tính • Ngày nay:
- Phương pháp tính, tính toán ký hiệu, Soạn thảo Văn bản, xử lý đồ hoạ, hình ảnh, âm thanh, đa phương tiện. - §an quyện dữ liệu, lệnh và kết quả Đối thoại (Dialogue),
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 15
Prepared by MSc Luong Manh Ba
0.4 Lĩnh vực liên quan (tiếp)
4 thành phần chính: Môi trường, Con người, Máy tính và Quá trình phát triển (ACM SIGCHI 1992)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 16
Prepared by MSc Luong Manh Ba
Môi trường (Use and Context)
• Sử dụng những gì mà máy tính cung cấp được gọi là “ứng dụng”. Tổ chức xã hội, công việc, kinh doanh tương tác với ứng dụng đó
• Lĩnh vực ứng dụng (Application Area): phân loại
các ứng dụng và các ứng dụng đặc biệt
- cá nhân, nhóm - giao tiếp hướng văn bản - giao tiếp hướng truyền thông - Môi trường thiết kế, lập trình, CAD/CAM - Trợ giúp trực tuyến, điều khiển HT liên tục
• Sự thích nghi Người-Máy
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 17
Prepared by MSc Luong Manh Ba
Con người
• Mục đích: Hiểu con người như là một Bộ xử lý
thông tin ▪ Cảm nhận ▪ Lưu trữ (các loại bộ nhớ) ▪ Xử lý
• Ngôn ngữ, giao tiếp và tương tác
▪ Các sắc thái ngôn ngữ: cú pháp , ngứ nghĩa ▪ Các mô hình hình thức của ngôn ngữ
• Công thái học
▪ Bố trí hiện và điều khiển, quan hệ ▪ Nhận thức của con người và giới hạn,…
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 18
Prepared by MSc Luong Manh Ba
Máy tính và kiến trúc tương tác (Computer System and Interface Architecture)
• Các thiết bị vào ra • Các kỹ thuật đối thoại; vào, ra và tương tác • Các kiểu đối thoại • Đồ hoạ máy tính • Kiến trúc đối thoại
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 19
Prepared by MSc Luong Manh Ba
Qui trình phát triển
• Bao gồm thiết kế và kỹ thuật • Các tiếp cận thiết kế • Kỹ thuật và công cụ cài đặt • Kỹ thuật đánh giá • Hệ thống mẫu và Case studies
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 20
Prepared by MSc Luong Manh Ba
0.5 Chất lượng
• Trước đây: Trạng thái ứng xử đúng với dữ
liệu đúng
• Tiếp theo: Trạng thái đúng với dữ liệu có
thể sai
• Ngày nay: Thân thiện, sinh động, dễ
dùng
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 21
Prepared by MSc Luong Manh Ba
0.6 Phương tiện và công cụ
• Hai thành phần cơ bản: ▪ Con người và máy tính ▪ Phương tiện: đối thoại => Muốn làm tương tác phải Hiểu đối tượng & Con người
Y/c
Hoạt động
T/L
Đối thoại
Trao đổi giữa các môđun
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 22
Prepared by MSc Luong Manh Ba
Phương tiện và công cụ (tiếp)
• Công cụ: Visual Basic, Jbuilder của Java 1.4
Chú ý Thành phần Swing là phần mới của Java để xây dựng giao tiếp đồ hoạ: menu, các hộp công cụ như Combo, List, Dialogue, . . .
• Nếu SV chưa học cần giới thiệu khoảng 10 tiết;
nếu không thì chỉ cần nêu khoảng 1 tiết.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 23
Prepared by MSc Luong Manh Ba
Thành phần Swing của JBuilder
• Java là NNLT hướng đối tượng, ra đời 5 /1995 do nhóm chuyên gia đứng đầu là James Goshing thuộc công ty Sun Microsystems thiết kế. Năm 1991 lấy tên là Oak, năm 1995 chính thức lấy tên Java, và được thiết kế lại để xây dựng chương trình ứng dụng Internet. Ngoài ứng dụng Web, Java còn có đủ đặc tính lập trình để thiết kế chương trình ứng dụng độc lập.
• Độc lập với hệ nền, do vậy có thể chạy trên bất cứ máy tính nào có hệ điều hành hỗ trợ Java Virtual Machine. • Là ngôn ngữ có tính phân tán với khả năng nối mạng
cài sẵn .
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 24
Prepared by MSc Luong Manh Ba
Thành phần Swing (tiếp)
• Các bản Java trước (<1.2), các thành phần đồ hoạ được
xây dựng trong thư viện AWT (Abstract Windows Toolkit). AWT là thư viện hữu ích trong thiết kế chương trình ứng dụng GUI nhưng không dùng để thiết kế những Project toàn diện.
• Do AWT phụ thuộc nhiều vào hệ nền, nên từ bản Java 2 trở đi các thành phần giao diện người dùng (UI) thay thế bằng tập hợp thành phần linh hoạt, đa năng và mạnh mẽ: thành phần Swing.
• Swing.* là gói thuộc Javax chứa thành phần UI dạng
đồ hoạ.
• Swing ít phụ thuộc vào hệ đích hơn và tài dần dần thay
thế cho AWT.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 25
Prepared by MSc Luong Manh Ba
Thành phần Swing (tiếp)
• Swing chỉ thay thế UI như Button, Textfield, TextArea;
Một số thành phần khác: Graphics, Color, Font, FontMetrics, LayoutManager vẫn nhờ AWT. Nó thừa kế các lớp trong thư viện AWT.
• Các thành phần Swing có tên gọi kèm theo tiếp đầu ngữ J, gồm trên 250 lớp. Swing là giải pháp toàn diện để thiết kế các trình ứng dụng GUI trung tâm.
• Để giới thiệu về Swing ta có thể quy về các thành phần
chính như sau : - JComponent là lớp trên của tất cả các thành phần Swing lightweight, bản thân nó thì được thừa kế từ lớp Container trong sơ đồ phân cấp đồ hoạ Java.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 26
Prepared by MSc Luong Manh Ba
Sơ đồ phân cấp của Swing
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 27
Prepared by MSc Luong Manh Ba
Java Swing (tiếp)
Swing UI có thể chia thành bốn thành phần sau: - javax.swing.AbstractButton. Lớp trừu tượng, chứa định nghĩa các nút: JButton, JToggleButton, CheckBox, JRadioButton, JMenuItem và JMenu. - javax.swing.JtextComponent: chứa các thành phần văn bản:Jlabel, Jlist, JcomboBox, JmenuBar, Jpanel, JoptionPane, JscrollBar, JscrollPane, JfileChooser và gồm các lớp : JpoPupMenu, JtoolBar, JlayeredPane, JrootPane, JprogressBar, JtoolTip, JtabbedPane, Jtree, JinternalFrame, Jslider, Jtable, Jpane, Jseparator, JsplitPane, . . .
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 28
Prepared by MSc Luong Manh Ba
Java Swing (tiếp)
- Các thành phần Swing Heavyweight:
+ Japplet (javax.swing.Japplet): Lớp tạo tiểu trình + Jframe (javax.swing.Jframe): Là cửa sổ không lồng bên trong cửa sổ khác, là cơ sở chính chứa các thành phần UI. Khi muốn thêm một thành phần thì không trực tiếp thêm vào Jframe mà phải thêm vào JrootPane - thành phần con của Jframe. + JDialog: Là dạng cửa sổ tạm, được bật lên nhằm thu nhận thông tin từ ND, hoặc thông báo mỗi khi có biến cố xảy ra.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 29
Prepared by MSc Luong Manh Ba
Java Swing (tiếp)
- Ngoài hai thành phần trên thì Swing còn chứa
các thành phần khác như sau. + javax.swing.border: Lớp chứa tất cả các kiểu đường viền + javax.swing.colorchooser: Lớp và giao diện hỗ trợ cho các thành phần. JcolorChooser dùng để cho phép lựa chọn màu. + javax.swing.event: Gói đặc biệt chứa các loại biến cố và các đối tượng lắng nghe. Các thành phần Swing hỗ trợ các biến cố và đối tượng lắng nghe được định nghĩa trong java.awt.event và java.beans .
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 30
Prepared by MSc Luong Manh Ba
Java Swing (tiếp)
khiển
điều
cấp
các
+ javax.swing.filechooser: Thành phần hỗ trợ cho JfileChooser. + javax.swing.plaf: Lớp chứa các kiểu nhìn và cảm nhận (look–and–feel) từ sơ đồ phân cấp đồ hoạ API, dùng để định nghĩa các thủ tục thành phần giao diện người dùng. Hầu hết các lớp này được chứa trong gói trừu tượng, chúng được thiết kế chỉ dành cho các nhà phát triển. Một số lớp con như sau:javax.swing.table - Jtable, Cung javax.swing.text: Chứa các lớp và giao diện được sử dụng bởi các thành phần văn bản.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 31
Prepared by MSc Luong Manh Ba
Thiết kế các thành phần giao diện với Swing
• Chương trình đồ hoạ Java được điều khiển bởi biến cố. Khi chương trình vận hành tức là tương tác với ND thì tất mọi biến cố chi phối việc thi hành chương trình . Biến cố phát sinh từ các tác động bên ngoài của con người như: bấm chuột, nhấn phím . . . , hay từ HĐH. Các lớp biến cố được chứa trong gói Java.awt.event ngoại trừ một số biến cố như : EventListenerList, ListSlectionEvent, chứa trong gói Javax.Swing.event . • Swing quản lý các đối tượng lắng nghe thông qua
ListenerList, nó được gọi từ EventListenerList.
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 32
Prepared by MSc Luong Manh Ba
Thiết kế các thành phần giao diện với Swing (tiếp)
• Khi nhận được biến cố phát sinh do tác động lên các đối tượng nguồn thì đối tượng lắng nghe (listener) đã được đối tượng nguồn đăng ký trước sẽ nhận và xử lý biến cố dựa theo chương trình đã lập. Giữa đối tượng nguồn và đối tượng lắng nghe luôn liên lạc với nhau thông qua phương thức xử lý biến cố (handler) đặt trên đối tượng lắng nghe .
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 33
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý
1- ActionEvent + Nguyên nhân: Nhấp nút lên đối tượng, trường văn bản ,... + Giao diện lắng nghe : ActionListener + Phương thức XL:actionPerformed(ActionEvent e) 2- ItemEvent + Nguyên nhân: Chọn khoản mục mới, nhấp ô chọn + Giao diện lắng nghe: ItemListener + Phương thức xử lý:ItemStateChanged(ItemEvent e)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 34
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý (tiếp)
3- WindowEvent + Nguyên nhân: Mở, đóng, thu nhỏ thành biểu tượng
+ Giao diện lắng nghe: WindowListener + Phương thức xử lý:
i)window Closing(WindowEvent e) ii)windowOpened(WindowEvent e) iii)windowIconified(WindowEvent e) iv)windowDeiconified(WindowEvent e) v)windowClosed(WindowEvent e) vi)windowActivated(WindowEvent e)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 35
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý (tiếp)
vii)windowDeactivated(WindowEvent e) 4- ContainerEvent + Nguyên nhân: Bổ sung hoặc loại bỏ thành phần khỏi vật chứa
+ Giao diện lắng nghe: ContainerListener + Phương thức xử lý :
i)componentAdded(ContainerEvent e) ii)componentRemoved(ContainerEvent e)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 36
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý (tiếp)
5- ComponentEvent + Nguyên nhân: Di chuyển, định kích cỡ, dấu hoặc
hiện lại Component
+ Giao diện lắng nghe: ComponentListener + Phương thức xử lý :
i)componentMoved(ComponentEvent e) ii)componentHidden(ComponentEvent e) iii)componentResized(ComponentEvent e) iv)componentShown(ComponentEvent e)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 37
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý (tiếp)
6- FocusEvent (mở rộng gói java.awt.ComponentEvent) + Nguyên nhân: Dời tiêu điểm đến/ ra khỏi thành phần :
Component
+ Giao diện lắng nghe : FocusListener + Phương thức xử lý :
i)focusGained(FocusEvent e) ii)focusLost(FocusEvent e)
7- TextEvent + Nguyên nhân:Thay đổi văn bản(JtextComponent) + Giao diện lắng nghe : TextListener
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 38
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý (tiếp)
: KeyListener
+ Phương thức xử lý : textValueChanged(TextEvent e) 8- KeyEvent + Nguyên nhân: Thả hoặc nhấn phím Component + Giao diện lắng nghe + Phương thức xử lý :
i) KeyPressed(KeyEvent e) ii) KeyReleased(KeyEvent e) iii)KeyTyped(KeyEvent e)
9- MouseEvent + Nguyên nhân:Di chuyển chuột Component
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 39
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý (tiếp)
+ Giao diện lắng nghe: có hai giao diện lắng nghe là
MouseListener và MouseMotionListener
+ Phương thức xử lý.
- Với MouseListener :
i) MousePressed(MouseEvent e) ii) MouseReleased(MouseEvent e) iii) MouseEntered(MouseEvent e) iv)MouseExited(MouseEvent e) v)MouseClicked(MouseEvent e)
-Với MouseMotionListener : i) MouseDragged(MouseEvent e)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 40
Prepared by MSc Luong Manh Ba
Một số biến cố và phương thức xử lý (tiếp)
ii) MouseMoved(MouseEvent e) 10- AdjustmentEvent + Nguyên nhân: Di chuyển thanh cuốn JscrollBar : AdjustmentListener + Giao diện lắng nghe + Phương thức xử lý
:
adjustmentValueChanged(AdjustmentEvent e)
11- ListSelectionEvent + Nguyên nhân: Chọn khoản mục: Jlist + Giao diện lắng nghe: ListSelectionListener + Phương thức xử lý
:
ValueChanged(ListSelectionListener e)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 41
Prepared by MSc Luong Manh Ba
Thiết kế vùng chứa
• Các thành phần để thiết kế vùng chứa sau: Jframe,
tạo khung cơ sở chứa các thành phần Jpanel
Jpanel, Japplet. Với: - Jframe: hoặc các thành phần giao diện. - Japplet: tạo tiểu trình có thể chứa các Jframe - Jpanel: là các thành phần trực tiếp dùng để biểu diễn các nút, nhãn, văn bản, . . ., được đặt bám vào các Jframe/Japplet. Jpanel có thể được đặt lồng nhau.
- Ngoài các thành phần dùng để thiết kế, Swing còn thừa kế các trình quản lý các thành phần giao diện (layout manager) nhằm đạt hiệu quả cao như: FlowLayout, GridLayout, GridBagLayout, BorderLayout, ...
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 42
Prepared by MSc Luong Manh Ba
Sơ đồ phân cấp của Jframe
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 43
Prepared by MSc Luong Manh Ba
Lớp JrootPane (javax.swing.JrootPane)
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 44
Prepared by MSc Luong Manh Ba
Lớp quản lý bố cục
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 45
Prepared by MSc Luong Manh Ba
Một vài thí dụ dùng Swing để xây dựng giao tiếp UI
H×nh 1: Cöa sæ so¹n th¶o chÝnh © Dept. of SE, 2002
HUT, Falt. of IT HCI - One. 46
Prepared by MSc Luong Manh Ba
Thí dụ dùng Swing để xây dựng giao tiếp UI (tiếp)
Hỡnh 2: Sử dụng jFileChooser
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 47
Prepared by MSc Luong Manh Ba
Thí dụ dùng Swing để xây dựng giao tiếp UI (tiếp)
Hình 3: Sử dụng JColorChooser
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 48
Prepared by MSc Luong Manh Ba
Môi trường Swing khi thiết kế UI
Thiết kế 3 phím lệnh với Jbutton trên JToolBar
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 49
Prepared by MSc Luong Manh Ba
Một vài đoạn mã lệnh cho các sự kiện
void fileOpen() {
if (!okToAbandon()) {return;}
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) { openFile(jFileChooser1.getSelectedFile().get Path()); } this.repaint();
} Đoạn mã lệnh cho sự kiện khi chọn Open trên Menu
hay nhấn biểu tượng Open trên ToolBar
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 50
Prepared by MSc Luong Manh Ba
Mã lệnh cho thủ tục mở File
void openFile(String fileName) {
try {File file = new File(fileName);
int size = (int)file.length(); int chars_read = 0; FileReader in = new FileReader(file); char[] data = new char[size]; while(in.ready()) {
chars_read += in.read(data,
chars_read, size - chars_read);}
0,
in.close(); jTextArea1.setText(new String(data, chars_read)); this.currFileName = fileName; this.dirty = false; statusBar.setText("Opened"+fileName);
updateCaption();} catch (IOException e) { statusBar.setText("Error opening "+fileName);}}
HUT, Falt. of IT © Dept. of SE, 2002 HCI - One. 51